if (!this.mok)var mok = {}, require = function (t) {
    var e = mok, n = {};
    return function (i) {
        if (n.hasOwnProperty(i))return n[i];
        var r = e[i];
        if ("function" == typeof r) {
            n[i] = function () {
            };
            var o = {exports: {}};
            r = r(require, o.exports, o), r === t && (r = o.exports)
        } else if (r === t)throw"MOK-JS error: can't find module [" + i + "]";
        return e[i] = null, n[i] = r
    }
}();
mok["lib/jquery.min"] = function (t, e, n) {
    !function (t, e) {
        "object" == typeof n && "object" == typeof n.exports ? n.exports = t.document ? e(t, !0) : function (t) {
            if (!t.document)throw new Error("jQuery requires a window with a document");
            return e(t)
        } : e(t)
    }("undefined" != typeof window ? window : this, function (t, e) {
        function n(t) {
            var e = t.length, n = rt.type(t);
            return "function" === n || rt.isWindow(t) ? !1 : 1 === t.nodeType && e ? !0 : "array" === n || 0 === e || "number" == typeof e && e > 0 && e - 1 in t
        }

        function i(t, e, n) {
            if (rt.isFunction(e))return rt.grep(t, function (t, i) {
                return !!e.call(t, i, t) !== n
            });
            if (e.nodeType)return rt.grep(t, function (t) {
                return t === e !== n
            });
            if ("string" == typeof e) {
                if (ft.test(e))return rt.filter(e, t, n);
                e = rt.filter(e, t)
            }
            return rt.grep(t, function (t) {
                return rt.inArray(t, e) >= 0 !== n
            })
        }

        function r(t, e) {
            do t = t[e]; while (t && 1 !== t.nodeType);
            return t
        }

        function o(t) {
            var e = xt[t] = {};
            return rt.each(t.match(bt) || [], function (t, n) {
                e[n] = !0
            }), e
        }

        function a() {
            ht.addEventListener ? (ht.removeEventListener("DOMContentLoaded", s, !1), t.removeEventListener("load", s, !1)) : (ht.detachEvent("onreadystatechange", s), t.detachEvent("onload", s))
        }

        function s() {
            (ht.addEventListener || "load" === event.type || "complete" === ht.readyState) && (a(), rt.ready())
        }

        function l(t, e, n) {
            if (void 0 === n && 1 === t.nodeType) {
                var i = "data-" + e.replace(Et, "-$1").toLowerCase();
                if (n = t.getAttribute(i), "string" == typeof n) {
                    try {
                        n = "true" === n ? !0 : "false" === n ? !1 : "null" === n ? null : +n + "" === n ? +n : kt.test(n) ? rt.parseJSON(n) : n
                    } catch (r) {
                    }
                    rt.data(t, e, n)
                } else n = void 0
            }
            return n
        }

        function u(t) {
            var e;
            for (e in t)if (("data" !== e || !rt.isEmptyObject(t[e])) && "toJSON" !== e)return !1;
            return !0
        }

        function c(t, e, n, i) {
            if (rt.acceptData(t)) {
                var r, o, a = rt.expando, s = t.nodeType, l = s ? rt.cache : t, u = s ? t[a] : t[a] && a;
                if (u && l[u] && (i || l[u].data) || void 0 !== n || "string" != typeof e)return u || (u = s ? t[a] = G.pop() || rt.guid++ : a), l[u] || (l[u] = s ? {} : {toJSON: rt.noop}), ("object" == typeof e || "function" == typeof e) && (i ? l[u] = rt.extend(l[u], e) : l[u].data = rt.extend(l[u].data, e)), o = l[u], i || (o.data || (o.data = {}), o = o.data), void 0 !== n && (o[rt.camelCase(e)] = n), "string" == typeof e ? (r = o[e], null == r && (r = o[rt.camelCase(e)])) : r = o, r
            }
        }

        function d(t, e, n) {
            if (rt.acceptData(t)) {
                var i, r, o = t.nodeType, a = o ? rt.cache : t, s = o ? t[rt.expando] : rt.expando;
                if (a[s]) {
                    if (e && (i = n ? a[s] : a[s].data)) {
                        rt.isArray(e) ? e = e.concat(rt.map(e, rt.camelCase)) : e in i ? e = [e] : (e = rt.camelCase(e), e = e in i ? [e] : e.split(" ")), r = e.length;
                        for (; r--;)delete i[e[r]];
                        if (n ? !u(i) : !rt.isEmptyObject(i))return
                    }
                    (n || (delete a[s].data, u(a[s]))) && (o ? rt.cleanData([t], !0) : nt.deleteExpando || a != a.window ? delete a[s] : a[s] = null)
                }
            }
        }

        function f() {
            return !0
        }

        function p() {
            return !1
        }

        function h() {
            try {
                return ht.activeElement
            } catch (t) {
            }
        }

        function m(t) {
            var e = Pt.split("|"), n = t.createDocumentFragment();
            if (n.createElement)for (; e.length;)n.createElement(e.pop());
            return n
        }

        function g(t, e) {
            var n, i, r = 0, o = typeof t.getElementsByTagName !== Ct ? t.getElementsByTagName(e || "*") : typeof t.querySelectorAll !== Ct ? t.querySelectorAll(e || "*") : void 0;
            if (!o)for (o = [], n = t.childNodes || t; null != (i = n[r]); r++)!e || rt.nodeName(i, e) ? o.push(i) : rt.merge(o, g(i, e));
            return void 0 === e || e && rt.nodeName(t, e) ? rt.merge([t], o) : o
        }

        function v(t) {
            Dt.test(t.type) && (t.defaultChecked = t.checked)
        }

        function y(t, e) {
            return rt.nodeName(t, "table") && rt.nodeName(11 !== e.nodeType ? e : e.firstChild, "tr") ? t.getElementsByTagName("tbody")[0] || t.appendChild(t.ownerDocument.createElement("tbody")) : t
        }

        function b(t) {
            return t.type = (null !== rt.find.attr(t, "type")) + "/" + t.type, t
        }

        function x(t) {
            var e = Xt.exec(t.type);
            return e ? t.type = e[1] : t.removeAttribute("type"), t
        }

        function w(t, e) {
            for (var n, i = 0; null != (n = t[i]); i++)rt._data(n, "globalEval", !e || rt._data(e[i], "globalEval"))
        }

        function T(t, e) {
            if (1 === e.nodeType && rt.hasData(t)) {
                var n, i, r, o = rt._data(t), a = rt._data(e, o), s = o.events;
                if (s) {
                    delete a.handle, a.events = {};
                    for (n in s)for (i = 0, r = s[n].length; r > i; i++)rt.event.add(e, n, s[n][i])
                }
                a.data && (a.data = rt.extend({}, a.data))
            }
        }

        function C(t, e) {
            var n, i, r;
            if (1 === e.nodeType) {
                if (n = e.nodeName.toLowerCase(), !nt.noCloneEvent && e[rt.expando]) {
                    r = rt._data(e);
                    for (i in r.events)rt.removeEvent(e, i, r.handle);
                    e.removeAttribute(rt.expando)
                }
                "script" === n && e.text !== t.text ? (b(e).text = t.text, x(e)) : "object" === n ? (e.parentNode && (e.outerHTML = t.outerHTML), nt.html5Clone && t.innerHTML && !rt.trim(e.innerHTML) && (e.innerHTML = t.innerHTML)) : "input" === n && Dt.test(t.type) ? (e.defaultChecked = e.checked = t.checked, e.value !== t.value && (e.value = t.value)) : "option" === n ? e.defaultSelected = e.selected = t.defaultSelected : ("input" === n || "textarea" === n) && (e.defaultValue = t.defaultValue)
            }
        }

        function k(e, n) {
            var i, r = rt(n.createElement(e)).appendTo(n.body), o = t.getDefaultComputedStyle && (i = t.getDefaultComputedStyle(r[0])) ? i.display : rt.css(r[0], "display");
            return r.detach(), o
        }

        function E(t) {
            var e = ht, n = Zt[t];
            return n || (n = k(t, e), "none" !== n && n || (Yt = (Yt || rt("<iframe frameborder='0' width='0' height='0'/>")).appendTo(e.documentElement), e = (Yt[0].contentWindow || Yt[0].contentDocument).document, e.write(), e.close(), n = k(t, e), Yt.detach()), Zt[t] = n), n
        }

        function S(t, e) {
            return {
                get: function () {
                    var n = t();
                    return null != n ? n ? void delete this.get : (this.get = e).apply(this, arguments) : void 0
                }
            }
        }

        function N(t, e) {
            if (e in t)return e;
            for (var n = e.charAt(0).toUpperCase() + e.slice(1), i = e, r = fe.length; r--;)if (e = fe[r] + n, e in t)return e;
            return i
        }

        function A(t, e) {
            for (var n, i, r, o = [], a = 0, s = t.length; s > a; a++)i = t[a], i.style && (o[a] = rt._data(i, "olddisplay"), n = i.style.display, e ? (o[a] || "none" !== n || (i.style.display = ""), "" === i.style.display && At(i) && (o[a] = rt._data(i, "olddisplay", E(i.nodeName)))) : (r = At(i), (n && "none" !== n || !r) && rt._data(i, "olddisplay", r ? n : rt.css(i, "display"))));
            for (a = 0; s > a; a++)i = t[a], i.style && (e && "none" !== i.style.display && "" !== i.style.display || (i.style.display = e ? o[a] || "" : "none"));
            return t
        }

        function $(t, e, n) {
            var i = le.exec(e);
            return i ? Math.max(0, i[1] - (n || 0)) + (i[2] || "px") : e
        }

        function D(t, e, n, i, r) {
            for (var o = n === (i ? "border" : "content") ? 4 : "width" === e ? 1 : 0, a = 0; 4 > o; o += 2)"margin" === n && (a += rt.css(t, n + Nt[o], !0, r)), i ? ("content" === n && (a -= rt.css(t, "padding" + Nt[o], !0, r)), "margin" !== n && (a -= rt.css(t, "border" + Nt[o] + "Width", !0, r))) : (a += rt.css(t, "padding" + Nt[o], !0, r), "padding" !== n && (a += rt.css(t, "border" + Nt[o] + "Width", !0, r)));
            return a
        }

        function j(t, e, n) {
            var i = !0, r = "width" === e ? t.offsetWidth : t.offsetHeight, o = te(t), a = nt.boxSizing && "border-box" === rt.css(t, "boxSizing", !1, o);
            if (0 >= r || null == r) {
                if (r = ee(t, e, o), (0 > r || null == r) && (r = t.style[e]), ie.test(r))return r;
                i = a && (nt.boxSizingReliable() || r === t.style[e]), r = parseFloat(r) || 0
            }
            return r + D(t, e, n || (a ? "border" : "content"), i, o) + "px"
        }

        function _(t, e, n, i, r) {
            return new _.prototype.init(t, e, n, i, r)
        }

        function L() {
            return setTimeout(function () {
                pe = void 0
            }), pe = rt.now()
        }

        function O(t, e) {
            var n, i = {height: t}, r = 0;
            for (e = e ? 1 : 0; 4 > r; r += 2 - e)n = Nt[r], i["margin" + n] = i["padding" + n] = t;
            return e && (i.opacity = i.width = t), i
        }

        function I(t, e, n) {
            for (var i, r = (be[e] || []).concat(be["*"]), o = 0, a = r.length; a > o; o++)if (i = r[o].call(n, e, t))return i
        }

        function P(t, e, n) {
            var i, r, o, a, s, l, u, c, d = this, f = {}, p = t.style, h = t.nodeType && At(t), m = rt._data(t, "fxshow");
            n.queue || (s = rt._queueHooks(t, "fx"), null == s.unqueued && (s.unqueued = 0, l = s.empty.fire, s.empty.fire = function () {
                s.unqueued || l()
            }), s.unqueued++, d.always(function () {
                d.always(function () {
                    s.unqueued--, rt.queue(t, "fx").length || s.empty.fire()
                })
            })), 1 === t.nodeType && ("height" in e || "width" in e) && (n.overflow = [p.overflow, p.overflowX, p.overflowY], u = rt.css(t, "display"), c = "none" === u ? rt._data(t, "olddisplay") || E(t.nodeName) : u, "inline" === c && "none" === rt.css(t, "float") && (nt.inlineBlockNeedsLayout && "inline" !== E(t.nodeName) ? p.zoom = 1 : p.display = "inline-block")), n.overflow && (p.overflow = "hidden", nt.shrinkWrapBlocks() || d.always(function () {
                p.overflow = n.overflow[0], p.overflowX = n.overflow[1], p.overflowY = n.overflow[2]
            }));
            for (i in e)if (r = e[i], me.exec(r)) {
                if (delete e[i], o = o || "toggle" === r, r === (h ? "hide" : "show")) {
                    if ("show" !== r || !m || void 0 === m[i])continue;
                    h = !0
                }
                f[i] = m && m[i] || rt.style(t, i)
            } else u = void 0;
            if (rt.isEmptyObject(f))"inline" === ("none" === u ? E(t.nodeName) : u) && (p.display = u); else {
                m ? "hidden" in m && (h = m.hidden) : m = rt._data(t, "fxshow", {}), o && (m.hidden = !h), h ? rt(t).show() : d.done(function () {
                    rt(t).hide()
                }), d.done(function () {
                    var e;
                    rt._removeData(t, "fxshow");
                    for (e in f)rt.style(t, e, f[e])
                });
                for (i in f)a = I(h ? m[i] : 0, i, d), i in m || (m[i] = a.start, h && (a.end = a.start, a.start = "width" === i || "height" === i ? 1 : 0))
            }
        }

        function q(t, e) {
            var n, i, r, o, a;
            for (n in t)if (i = rt.camelCase(n), r = e[i], o = t[n], rt.isArray(o) && (r = o[1], o = t[n] = o[0]), n !== i && (t[i] = o, delete t[n]), a = rt.cssHooks[i], a && "expand" in a) {
                o = a.expand(o), delete t[i];
                for (n in o)n in t || (t[n] = o[n], e[n] = r)
            } else e[i] = r
        }

        function H(t, e, n) {
            var i, r, o = 0, a = ye.length, s = rt.Deferred().always(function () {
                delete l.elem
            }), l = function () {
                if (r)return !1;
                for (var e = pe || L(), n = Math.max(0, u.startTime + u.duration - e), i = n / u.duration || 0, o = 1 - i, a = 0, l = u.tweens.length; l > a; a++)u.tweens[a].run(o);
                return s.notifyWith(t, [u, o, n]), 1 > o && l ? n : (s.resolveWith(t, [u]), !1)
            }, u = s.promise({
                elem: t,
                props: rt.extend({}, e),
                opts: rt.extend(!0, {specialEasing: {}}, n),
                originalProperties: e,
                originalOptions: n,
                startTime: pe || L(),
                duration: n.duration,
                tweens: [],
                createTween: function (e, n) {
                    var i = rt.Tween(t, u.opts, e, n, u.opts.specialEasing[e] || u.opts.easing);
                    return u.tweens.push(i), i
                },
                stop: function (e) {
                    var n = 0, i = e ? u.tweens.length : 0;
                    if (r)return this;
                    for (r = !0; i > n; n++)u.tweens[n].run(1);
                    return e ? s.resolveWith(t, [u, e]) : s.rejectWith(t, [u, e]), this
                }
            }), c = u.props;
            for (q(c, u.opts.specialEasing); a > o; o++)if (i = ye[o].call(u, t, c, u.opts))return i;
            return rt.map(c, I, u), rt.isFunction(u.opts.start) && u.opts.start.call(t, u), rt.fx.timer(rt.extend(l, {
                elem: t,
                anim: u,
                queue: u.opts.queue
            })), u.progress(u.opts.progress).done(u.opts.done, u.opts.complete).fail(u.opts.fail).always(u.opts.always)
        }

        function B(t) {
            return function (e, n) {
                "string" != typeof e && (n = e, e = "*");
                var i, r = 0, o = e.toLowerCase().match(bt) || [];
                if (rt.isFunction(n))for (; i = o[r++];)"+" === i.charAt(0) ? (i = i.slice(1) || "*", (t[i] = t[i] || []).unshift(n)) : (t[i] = t[i] || []).push(n)
            }
        }

        function R(t, e, n, i) {
            function r(s) {
                var l;
                return o[s] = !0, rt.each(t[s] || [], function (t, s) {
                    var u = s(e, n, i);
                    return "string" != typeof u || a || o[u] ? a ? !(l = u) : void 0 : (e.dataTypes.unshift(u), r(u), !1)
                }), l
            }

            var o = {}, a = t === We;
            return r(e.dataTypes[0]) || !o["*"] && r("*")
        }

        function M(t, e) {
            var n, i, r = rt.ajaxSettings.flatOptions || {};
            for (i in e)void 0 !== e[i] && ((r[i] ? t : n || (n = {}))[i] = e[i]);
            return n && rt.extend(!0, t, n), t
        }

        function F(t, e, n) {
            for (var i, r, o, a, s = t.contents, l = t.dataTypes; "*" === l[0];)l.shift(), void 0 === r && (r = t.mimeType || e.getResponseHeader("Content-Type"));
            if (r)for (a in s)if (s[a] && s[a].test(r)) {
                l.unshift(a);
                break
            }
            if (l[0] in n)o = l[0]; else {
                for (a in n) {
                    if (!l[0] || t.converters[a + " " + l[0]]) {
                        o = a;
                        break
                    }
                    i || (i = a)
                }
                o = o || i
            }
            return o ? (o !== l[0] && l.unshift(o), n[o]) : void 0
        }

        function W(t, e, n, i) {
            var r, o, a, s, l, u = {}, c = t.dataTypes.slice();
            if (c[1])for (a in t.converters)u[a.toLowerCase()] = t.converters[a];
            for (o = c.shift(); o;)if (t.responseFields[o] && (n[t.responseFields[o]] = e), !l && i && t.dataFilter && (e = t.dataFilter(e, t.dataType)), l = o, o = c.shift())if ("*" === o)o = l; else if ("*" !== l && l !== o) {
                if (a = u[l + " " + o] || u["* " + o], !a)for (r in u)if (s = r.split(" "), s[1] === o && (a = u[l + " " + s[0]] || u["* " + s[0]])) {
                    a === !0 ? a = u[r] : u[r] !== !0 && (o = s[0], c.unshift(s[1]));
                    break
                }
                if (a !== !0)if (a && t["throws"])e = a(e); else try {
                    e = a(e)
                } catch (d) {
                    return {state: "parsererror", error: a ? d : "No conversion from " + l + " to " + o}
                }
            }
            return {state: "success", data: e}
        }

        function V(t, e, n, i) {
            var r;
            if (rt.isArray(e))rt.each(e, function (e, r) {
                n || Xe.test(t) ? i(t, r) : V(t + "[" + ("object" == typeof r ? e : "") + "]", r, n, i)
            }); else if (n || "object" !== rt.type(e))i(t, e); else for (r in e)V(t + "[" + r + "]", e[r], n, i)
        }

        function z() {
            try {
                return new t.XMLHttpRequest
            } catch (e) {
            }
        }

        function U() {
            try {
                return new t.ActiveXObject("Microsoft.XMLHTTP")
            } catch (e) {
            }
        }

        function X(t) {
            return rt.isWindow(t) ? t : 9 === t.nodeType ? t.defaultView || t.parentWindow : !1
        }

        var G = [], K = G.slice, Q = G.concat, J = G.push, Y = G.indexOf, Z = {}, tt = Z.toString, et = Z.hasOwnProperty, nt = {}, it = "1.11.2", rt = function (t, e) {
            return new rt.fn.init(t, e)
        }, ot = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g, at = /^-ms-/, st = /-([\da-z])/gi, lt = function (t, e) {
            return e.toUpperCase()
        };
        rt.fn = rt.prototype = {
            jquery: it, constructor: rt, selector: "", length: 0, toArray: function () {
                return K.call(this)
            }, get: function (t) {
                return null != t ? 0 > t ? this[t + this.length] : this[t] : K.call(this)
            }, pushStack: function (t) {
                var e = rt.merge(this.constructor(), t);
                return e.prevObject = this, e.context = this.context, e
            }, each: function (t, e) {
                return rt.each(this, t, e)
            }, map: function (t) {
                return this.pushStack(rt.map(this, function (e, n) {
                    return t.call(e, n, e)
                }))
            }, slice: function () {
                return this.pushStack(K.apply(this, arguments))
            }, first: function () {
                return this.eq(0)
            }, last: function () {
                return this.eq(-1)
            }, eq: function (t) {
                var e = this.length, n = +t + (0 > t ? e : 0);
                return this.pushStack(n >= 0 && e > n ? [this[n]] : [])
            }, end: function () {
                return this.prevObject || this.constructor(null)
            }, push: J, sort: G.sort, splice: G.splice
        }, rt.extend = rt.fn.extend = function () {
            var t, e, n, i, r, o, a = arguments[0] || {}, s = 1, l = arguments.length, u = !1;
            for ("boolean" == typeof a && (u = a, a = arguments[s] || {}, s++), "object" == typeof a || rt.isFunction(a) || (a = {}), s === l && (a = this, s--); l > s; s++)if (null != (r = arguments[s]))for (i in r)t = a[i], n = r[i], a !== n && (u && n && (rt.isPlainObject(n) || (e = rt.isArray(n))) ? (e ? (e = !1, o = t && rt.isArray(t) ? t : []) : o = t && rt.isPlainObject(t) ? t : {}, a[i] = rt.extend(u, o, n)) : void 0 !== n && (a[i] = n));
            return a
        }, rt.extend({
            expando: "jQuery" + (it + Math.random()).replace(/\D/g, ""), isReady: !0, error: function (t) {
                throw new Error(t)
            }, noop: function () {
            }, isFunction: function (t) {
                return "function" === rt.type(t)
            }, isArray: Array.isArray || function (t) {
                return "array" === rt.type(t)
            }, isWindow: function (t) {
                return null != t && t == t.window
            }, isNumeric: function (t) {
                return !rt.isArray(t) && t - parseFloat(t) + 1 >= 0
            }, isEmptyObject: function (t) {
                var e;
                for (e in t)return !1;
                return !0
            }, isPlainObject: function (t) {
                var e;
                if (!t || "object" !== rt.type(t) || t.nodeType || rt.isWindow(t))return !1;
                try {
                    if (t.constructor && !et.call(t, "constructor") && !et.call(t.constructor.prototype, "isPrototypeOf"))return !1
                } catch (n) {
                    return !1
                }
                if (nt.ownLast)for (e in t)return et.call(t, e);
                for (e in t);
                return void 0 === e || et.call(t, e)
            }, type: function (t) {
                return null == t ? t + "" : "object" == typeof t || "function" == typeof t ? Z[tt.call(t)] || "object" : typeof t
            }, globalEval: function (e) {
                e && rt.trim(e) && (t.execScript || function (e) {
                    t.eval.call(t, e)
                })(e)
            }, camelCase: function (t) {
                return t.replace(at, "ms-").replace(st, lt)
            }, nodeName: function (t, e) {
                return t.nodeName && t.nodeName.toLowerCase() === e.toLowerCase()
            }, each: function (t, e, i) {
                var r, o = 0, a = t.length, s = n(t);
                if (i) {
                    if (s)for (; a > o && (r = e.apply(t[o], i), r !== !1); o++); else for (o in t)if (r = e.apply(t[o], i), r === !1)break
                } else if (s)for (; a > o && (r = e.call(t[o], o, t[o]), r !== !1); o++); else for (o in t)if (r = e.call(t[o], o, t[o]), r === !1)break;
                return t
            }, trim: function (t) {
                return null == t ? "" : (t + "").replace(ot, "")
            }, makeArray: function (t, e) {
                var i = e || [];
                return null != t && (n(Object(t)) ? rt.merge(i, "string" == typeof t ? [t] : t) : J.call(i, t)), i
            }, inArray: function (t, e, n) {
                var i;
                if (e) {
                    if (Y)return Y.call(e, t, n);
                    for (i = e.length, n = n ? 0 > n ? Math.max(0, i + n) : n : 0; i > n; n++)if (n in e && e[n] === t)return n
                }
                return -1
            }, merge: function (t, e) {
                for (var n = +e.length, i = 0, r = t.length; n > i;)t[r++] = e[i++];
                if (n !== n)for (; void 0 !== e[i];)t[r++] = e[i++];
                return t.length = r, t
            }, grep: function (t, e, n) {
                for (var i, r = [], o = 0, a = t.length, s = !n; a > o; o++)i = !e(t[o], o), i !== s && r.push(t[o]);
                return r
            }, map: function (t, e, i) {
                var r, o = 0, a = t.length, s = n(t), l = [];
                if (s)for (; a > o; o++)r = e(t[o], o, i), null != r && l.push(r); else for (o in t)r = e(t[o], o, i), null != r && l.push(r);
                return Q.apply([], l)
            }, guid: 1, proxy: function (t, e) {
                var n, i, r;
                return "string" == typeof e && (r = t[e], e = t, t = r), rt.isFunction(t) ? (n = K.call(arguments, 2), i = function () {
                    return t.apply(e || this, n.concat(K.call(arguments)))
                }, i.guid = t.guid = t.guid || rt.guid++, i) : void 0
            }, now: function () {
                return +new Date
            }, support: nt
        }), rt.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function (t, e) {
            Z["[object " + e + "]"] = e.toLowerCase()
        });
        var ut = function (t) {
            function e(t, e, n, i) {
                var r, o, a, s, l, u, d, p, h, m;
                if ((e ? e.ownerDocument || e : R) !== _ && j(e), e = e || _, n = n || [], s = e.nodeType, "string" != typeof t || !t || 1 !== s && 9 !== s && 11 !== s)return n;
                if (!i && O) {
                    if (11 !== s && (r = yt.exec(t)))if (a = r[1]) {
                        if (9 === s) {
                            if (o = e.getElementById(a), !o || !o.parentNode)return n;
                            if (o.id === a)return n.push(o), n
                        } else if (e.ownerDocument && (o = e.ownerDocument.getElementById(a)) && H(e, o) && o.id === a)return n.push(o), n
                    } else {
                        if (r[2])return Y.apply(n, e.getElementsByTagName(t)), n;
                        if ((a = r[3]) && w.getElementsByClassName)return Y.apply(n, e.getElementsByClassName(a)), n
                    }
                    if (w.qsa && (!I || !I.test(t))) {
                        if (p = d = B, h = e, m = 1 !== s && t, 1 === s && "object" !== e.nodeName.toLowerCase()) {
                            for (u = E(t), (d = e.getAttribute("id")) ? p = d.replace(xt, "\\$&") : e.setAttribute("id", p), p = "[id='" + p + "'] ", l = u.length; l--;)u[l] = p + f(u[l]);
                            h = bt.test(t) && c(e.parentNode) || e, m = u.join(",")
                        }
                        if (m)try {
                            return Y.apply(n, h.querySelectorAll(m)), n
                        } catch (g) {
                        } finally {
                            d || e.removeAttribute("id")
                        }
                    }
                }
                return N(t.replace(lt, "$1"), e, n, i)
            }

            function n() {
                function t(n, i) {
                    return e.push(n + " ") > T.cacheLength && delete t[e.shift()], t[n + " "] = i
                }

                var e = [];
                return t
            }

            function i(t) {
                return t[B] = !0, t
            }

            function r(t) {
                var e = _.createElement("div");
                try {
                    return !!t(e)
                } catch (n) {
                    return !1
                } finally {
                    e.parentNode && e.parentNode.removeChild(e), e = null
                }
            }

            function o(t, e) {
                for (var n = t.split("|"), i = t.length; i--;)T.attrHandle[n[i]] = e
            }

            function a(t, e) {
                var n = e && t, i = n && 1 === t.nodeType && 1 === e.nodeType && (~e.sourceIndex || X) - (~t.sourceIndex || X);
                if (i)return i;
                if (n)for (; n = n.nextSibling;)if (n === e)return -1;
                return t ? 1 : -1
            }

            function s(t) {
                return function (e) {
                    var n = e.nodeName.toLowerCase();
                    return "input" === n && e.type === t
                }
            }

            function l(t) {
                return function (e) {
                    var n = e.nodeName.toLowerCase();
                    return ("input" === n || "button" === n) && e.type === t
                }
            }

            function u(t) {
                return i(function (e) {
                    return e = +e, i(function (n, i) {
                        for (var r, o = t([], n.length, e), a = o.length; a--;)n[r = o[a]] && (n[r] = !(i[r] = n[r]))
                    })
                })
            }

            function c(t) {
                return t && "undefined" != typeof t.getElementsByTagName && t
            }

            function d() {
            }

            function f(t) {
                for (var e = 0, n = t.length, i = ""; n > e; e++)i += t[e].value;
                return i
            }

            function p(t, e, n) {
                var i = e.dir, r = n && "parentNode" === i, o = F++;
                return e.first ? function (e, n, o) {
                    for (; e = e[i];)if (1 === e.nodeType || r)return t(e, n, o)
                } : function (e, n, a) {
                    var s, l, u = [M, o];
                    if (a) {
                        for (; e = e[i];)if ((1 === e.nodeType || r) && t(e, n, a))return !0
                    } else for (; e = e[i];)if (1 === e.nodeType || r) {
                        if (l = e[B] || (e[B] = {}), (s = l[i]) && s[0] === M && s[1] === o)return u[2] = s[2];
                        if (l[i] = u, u[2] = t(e, n, a))return !0
                    }
                }
            }

            function h(t) {
                return t.length > 1 ? function (e, n, i) {
                    for (var r = t.length; r--;)if (!t[r](e, n, i))return !1;
                    return !0
                } : t[0]
            }

            function m(t, n, i) {
                for (var r = 0, o = n.length; o > r; r++)e(t, n[r], i);
                return i
            }

            function g(t, e, n, i, r) {
                for (var o, a = [], s = 0, l = t.length, u = null != e; l > s; s++)(o = t[s]) && (!n || n(o, i, r)) && (a.push(o), u && e.push(s));
                return a
            }

            function v(t, e, n, r, o, a) {
                return r && !r[B] && (r = v(r)), o && !o[B] && (o = v(o, a)), i(function (i, a, s, l) {
                    var u, c, d, f = [], p = [], h = a.length, v = i || m(e || "*", s.nodeType ? [s] : s, []), y = !t || !i && e ? v : g(v, f, t, s, l), b = n ? o || (i ? t : h || r) ? [] : a : y;
                    if (n && n(y, b, s, l), r)for (u = g(b, p), r(u, [], s, l), c = u.length; c--;)(d = u[c]) && (b[p[c]] = !(y[p[c]] = d));
                    if (i) {
                        if (o || t) {
                            if (o) {
                                for (u = [], c = b.length; c--;)(d = b[c]) && u.push(y[c] = d);
                                o(null, b = [], u, l)
                            }
                            for (c = b.length; c--;)(d = b[c]) && (u = o ? tt(i, d) : f[c]) > -1 && (i[u] = !(a[u] = d))
                        }
                    } else b = g(b === a ? b.splice(h, b.length) : b), o ? o(null, a, b, l) : Y.apply(a, b)
                })
            }

            function y(t) {
                for (var e, n, i, r = t.length, o = T.relative[t[0].type], a = o || T.relative[" "], s = o ? 1 : 0, l = p(function (t) {
                    return t === e
                }, a, !0), u = p(function (t) {
                    return tt(e, t) > -1
                }, a, !0), c = [function (t, n, i) {
                    var r = !o && (i || n !== A) || ((e = n).nodeType ? l(t, n, i) : u(t, n, i));
                    return e = null, r
                }]; r > s; s++)if (n = T.relative[t[s].type])c = [p(h(c), n)]; else {
                    if (n = T.filter[t[s].type].apply(null, t[s].matches), n[B]) {
                        for (i = ++s; r > i && !T.relative[t[i].type]; i++);
                        return v(s > 1 && h(c), s > 1 && f(t.slice(0, s - 1).concat({value: " " === t[s - 2].type ? "*" : ""})).replace(lt, "$1"), n, i > s && y(t.slice(s, i)), r > i && y(t = t.slice(i)), r > i && f(t))
                    }
                    c.push(n)
                }
                return h(c)
            }

            function b(t, n) {
                var r = n.length > 0, o = t.length > 0, a = function (i, a, s, l, u) {
                    var c, d, f, p = 0, h = "0", m = i && [], v = [], y = A, b = i || o && T.find.TAG("*", u), x = M += null == y ? 1 : Math.random() || .1, w = b.length;
                    for (u && (A = a !== _ && a); h !== w && null != (c = b[h]); h++) {
                        if (o && c) {
                            for (d = 0; f = t[d++];)if (f(c, a, s)) {
                                l.push(c);
                                break
                            }
                            u && (M = x)
                        }
                        r && ((c = !f && c) && p--, i && m.push(c))
                    }
                    if (p += h, r && h !== p) {
                        for (d = 0; f = n[d++];)f(m, v, a, s);
                        if (i) {
                            if (p > 0)for (; h--;)m[h] || v[h] || (v[h] = Q.call(l));
                            v = g(v)
                        }
                        Y.apply(l, v), u && !i && v.length > 0 && p + n.length > 1 && e.uniqueSort(l)
                    }
                    return u && (M = x, A = y), m
                };
                return r ? i(a) : a
            }

            var x, w, T, C, k, E, S, N, A, $, D, j, _, L, O, I, P, q, H, B = "sizzle" + 1 * new Date, R = t.document, M = 0, F = 0, W = n(), V = n(), z = n(), U = function (t, e) {
                return t === e && (D = !0), 0
            }, X = 1 << 31, G = {}.hasOwnProperty, K = [], Q = K.pop, J = K.push, Y = K.push, Z = K.slice, tt = function (t, e) {
                for (var n = 0, i = t.length; i > n; n++)if (t[n] === e)return n;
                return -1
            }, et = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped", nt = "[\\x20\\t\\r\\n\\f]", it = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", rt = it.replace("w", "w#"), ot = "\\[" + nt + "*(" + it + ")(?:" + nt + "*([*^$|!~]?=)" + nt + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + rt + "))|)" + nt + "*\\]", at = ":(" + it + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + ot + ")*)|.*)\\)|)", st = new RegExp(nt + "+", "g"), lt = new RegExp("^" + nt + "+|((?:^|[^\\\\])(?:\\\\.)*)" + nt + "+$", "g"), ut = new RegExp("^" + nt + "*," + nt + "*"), ct = new RegExp("^" + nt + "*([>+~]|" + nt + ")" + nt + "*"), dt = new RegExp("=" + nt + "*([^\\]'\"]*?)" + nt + "*\\]", "g"), ft = new RegExp(at), pt = new RegExp("^" + rt + "$"), ht = {
                ID: new RegExp("^#(" + it + ")"),
                CLASS: new RegExp("^\\.(" + it + ")"),
                TAG: new RegExp("^(" + it.replace("w", "w*") + ")"),
                ATTR: new RegExp("^" + ot),
                PSEUDO: new RegExp("^" + at),
                CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + nt + "*(even|odd|(([+-]|)(\\d*)n|)" + nt + "*(?:([+-]|)" + nt + "*(\\d+)|))" + nt + "*\\)|)", "i"),
                bool: new RegExp("^(?:" + et + ")$", "i"),
                needsContext: new RegExp("^" + nt + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + nt + "*((?:-\\d)?\\d*)" + nt + "*\\)|)(?=[^-]|$)", "i")
            }, mt = /^(?:input|select|textarea|button)$/i, gt = /^h\d$/i, vt = /^[^{]+\{\s*\[native \w/, yt = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/, bt = /[+~]/, xt = /'|\\/g, wt = new RegExp("\\\\([\\da-f]{1,6}" + nt + "?|(" + nt + ")|.)", "ig"), Tt = function (t, e, n) {
                var i = "0x" + e - 65536;
                return i !== i || n ? e : 0 > i ? String.fromCharCode(i + 65536) : String.fromCharCode(i >> 10 | 55296, 1023 & i | 56320)
            }, Ct = function () {
                j()
            };
            try {
                Y.apply(K = Z.call(R.childNodes), R.childNodes), K[R.childNodes.length].nodeType
            } catch (kt) {
                Y = {
                    apply: K.length ? function (t, e) {
                        J.apply(t, Z.call(e))
                    } : function (t, e) {
                        for (var n = t.length, i = 0; t[n++] = e[i++];);
                        t.length = n - 1
                    }
                }
            }
            w = e.support = {}, k = e.isXML = function (t) {
                var e = t && (t.ownerDocument || t).documentElement;
                return e ? "HTML" !== e.nodeName : !1
            }, j = e.setDocument = function (t) {
                var e, n, i = t ? t.ownerDocument || t : R;
                return i !== _ && 9 === i.nodeType && i.documentElement ? (_ = i, L = i.documentElement, n = i.defaultView, n && n !== n.top && (n.addEventListener ? n.addEventListener("unload", Ct, !1) : n.attachEvent && n.attachEvent("onunload", Ct)), O = !k(i), w.attributes = r(function (t) {
                    return t.className = "i", !t.getAttribute("className")
                }), w.getElementsByTagName = r(function (t) {
                    return t.appendChild(i.createComment("")), !t.getElementsByTagName("*").length
                }), w.getElementsByClassName = vt.test(i.getElementsByClassName), w.getById = r(function (t) {
                    return L.appendChild(t).id = B, !i.getElementsByName || !i.getElementsByName(B).length
                }), w.getById ? (T.find.ID = function (t, e) {
                    if ("undefined" != typeof e.getElementById && O) {
                        var n = e.getElementById(t);
                        return n && n.parentNode ? [n] : []
                    }
                }, T.filter.ID = function (t) {
                    var e = t.replace(wt, Tt);
                    return function (t) {
                        return t.getAttribute("id") === e
                    }
                }) : (delete T.find.ID, T.filter.ID = function (t) {
                    var e = t.replace(wt, Tt);
                    return function (t) {
                        var n = "undefined" != typeof t.getAttributeNode && t.getAttributeNode("id");
                        return n && n.value === e
                    }
                }), T.find.TAG = w.getElementsByTagName ? function (t, e) {
                    return "undefined" != typeof e.getElementsByTagName ? e.getElementsByTagName(t) : w.qsa ? e.querySelectorAll(t) : void 0
                } : function (t, e) {
                    var n, i = [], r = 0, o = e.getElementsByTagName(t);
                    if ("*" === t) {
                        for (; n = o[r++];)1 === n.nodeType && i.push(n);
                        return i
                    }
                    return o
                }, T.find.CLASS = w.getElementsByClassName && function (t, e) {
                        return O ? e.getElementsByClassName(t) : void 0
                    }, P = [], I = [], (w.qsa = vt.test(i.querySelectorAll)) && (r(function (t) {
                    L.appendChild(t).innerHTML = "<a id='" + B + "'></a><select id='" + B + "-\f]' msallowcapture=''><option selected=''></option></select>", t.querySelectorAll("[msallowcapture^='']").length && I.push("[*^$]=" + nt + "*(?:''|\"\")"), t.querySelectorAll("[selected]").length || I.push("\\[" + nt + "*(?:value|" + et + ")"), t.querySelectorAll("[id~=" + B + "-]").length || I.push("~="), t.querySelectorAll(":checked").length || I.push(":checked"), t.querySelectorAll("a#" + B + "+*").length || I.push(".#.+[+~]")
                }), r(function (t) {
                    var e = i.createElement("input");
                    e.setAttribute("type", "hidden"), t.appendChild(e).setAttribute("name", "D"), t.querySelectorAll("[name=d]").length && I.push("name" + nt + "*[*^$|!~]?="), t.querySelectorAll(":enabled").length || I.push(":enabled", ":disabled"), t.querySelectorAll("*,:x"), I.push(",.*:")
                })), (w.matchesSelector = vt.test(q = L.matches || L.webkitMatchesSelector || L.mozMatchesSelector || L.oMatchesSelector || L.msMatchesSelector)) && r(function (t) {
                    w.disconnectedMatch = q.call(t, "div"), q.call(t, "[s!='']:x"), P.push("!=", at)
                }), I = I.length && new RegExp(I.join("|")), P = P.length && new RegExp(P.join("|")), e = vt.test(L.compareDocumentPosition), H = e || vt.test(L.contains) ? function (t, e) {
                    var n = 9 === t.nodeType ? t.documentElement : t, i = e && e.parentNode;
                    return t === i || !(!i || 1 !== i.nodeType || !(n.contains ? n.contains(i) : t.compareDocumentPosition && 16 & t.compareDocumentPosition(i)))
                } : function (t, e) {
                    if (e)for (; e = e.parentNode;)if (e === t)return !0;
                    return !1
                }, U = e ? function (t, e) {
                    if (t === e)return D = !0, 0;
                    var n = !t.compareDocumentPosition - !e.compareDocumentPosition;
                    return n ? n : (n = (t.ownerDocument || t) === (e.ownerDocument || e) ? t.compareDocumentPosition(e) : 1, 1 & n || !w.sortDetached && e.compareDocumentPosition(t) === n ? t === i || t.ownerDocument === R && H(R, t) ? -1 : e === i || e.ownerDocument === R && H(R, e) ? 1 : $ ? tt($, t) - tt($, e) : 0 : 4 & n ? -1 : 1)
                } : function (t, e) {
                    if (t === e)return D = !0, 0;
                    var n, r = 0, o = t.parentNode, s = e.parentNode, l = [t], u = [e];
                    if (!o || !s)return t === i ? -1 : e === i ? 1 : o ? -1 : s ? 1 : $ ? tt($, t) - tt($, e) : 0;
                    if (o === s)return a(t, e);
                    for (n = t; n = n.parentNode;)l.unshift(n);
                    for (n = e; n = n.parentNode;)u.unshift(n);
                    for (; l[r] === u[r];)r++;
                    return r ? a(l[r], u[r]) : l[r] === R ? -1 : u[r] === R ? 1 : 0
                }, i) : _
            }, e.matches = function (t, n) {
                return e(t, null, null, n)
            }, e.matchesSelector = function (t, n) {
                if ((t.ownerDocument || t) !== _ && j(t), n = n.replace(dt, "='$1']"), !(!w.matchesSelector || !O || P && P.test(n) || I && I.test(n)))try {
                    var i = q.call(t, n);
                    if (i || w.disconnectedMatch || t.document && 11 !== t.document.nodeType)return i
                } catch (r) {
                }
                return e(n, _, null, [t]).length > 0
            }, e.contains = function (t, e) {
                return (t.ownerDocument || t) !== _ && j(t), H(t, e)
            }, e.attr = function (t, e) {
                (t.ownerDocument || t) !== _ && j(t);
                var n = T.attrHandle[e.toLowerCase()], i = n && G.call(T.attrHandle, e.toLowerCase()) ? n(t, e, !O) : void 0;
                return void 0 !== i ? i : w.attributes || !O ? t.getAttribute(e) : (i = t.getAttributeNode(e)) && i.specified ? i.value : null
            }, e.error = function (t) {
                throw new Error("Syntax error, unrecognized expression: " + t)
            }, e.uniqueSort = function (t) {
                var e, n = [], i = 0, r = 0;
                if (D = !w.detectDuplicates, $ = !w.sortStable && t.slice(0), t.sort(U), D) {
                    for (; e = t[r++];)e === t[r] && (i = n.push(r));
                    for (; i--;)t.splice(n[i], 1)
                }
                return $ = null, t
            }, C = e.getText = function (t) {
                var e, n = "", i = 0, r = t.nodeType;
                if (r) {
                    if (1 === r || 9 === r || 11 === r) {
                        if ("string" == typeof t.textContent)return t.textContent;
                        for (t = t.firstChild; t; t = t.nextSibling)n += C(t)
                    } else if (3 === r || 4 === r)return t.nodeValue
                } else for (; e = t[i++];)n += C(e);
                return n
            }, T = e.selectors = {
                cacheLength: 50,
                createPseudo: i,
                match: ht,
                attrHandle: {},
                find: {},
                relative: {
                    ">": {dir: "parentNode", first: !0},
                    " ": {dir: "parentNode"},
                    "+": {dir: "previousSibling", first: !0},
                    "~": {dir: "previousSibling"}
                },
                preFilter: {
                    ATTR: function (t) {
                        return t[1] = t[1].replace(wt, Tt), t[3] = (t[3] || t[4] || t[5] || "").replace(wt, Tt), "~=" === t[2] && (t[3] = " " + t[3] + " "), t.slice(0, 4)
                    }, CHILD: function (t) {
                        return t[1] = t[1].toLowerCase(), "nth" === t[1].slice(0, 3) ? (t[3] || e.error(t[0]), t[4] = +(t[4] ? t[5] + (t[6] || 1) : 2 * ("even" === t[3] || "odd" === t[3])), t[5] = +(t[7] + t[8] || "odd" === t[3])) : t[3] && e.error(t[0]), t
                    }, PSEUDO: function (t) {
                        var e, n = !t[6] && t[2];
                        return ht.CHILD.test(t[0]) ? null : (t[3] ? t[2] = t[4] || t[5] || "" : n && ft.test(n) && (e = E(n, !0)) && (e = n.indexOf(")", n.length - e) - n.length) && (t[0] = t[0].slice(0, e), t[2] = n.slice(0, e)), t.slice(0, 3))
                    }
                },
                filter: {
                    TAG: function (t) {
                        var e = t.replace(wt, Tt).toLowerCase();
                        return "*" === t ? function () {
                            return !0
                        } : function (t) {
                            return t.nodeName && t.nodeName.toLowerCase() === e
                        }
                    }, CLASS: function (t) {
                        var e = W[t + " "];
                        return e || (e = new RegExp("(^|" + nt + ")" + t + "(" + nt + "|$)")) && W(t, function (t) {
                                return e.test("string" == typeof t.className && t.className || "undefined" != typeof t.getAttribute && t.getAttribute("class") || "")
                            })
                    }, ATTR: function (t, n, i) {
                        return function (r) {
                            var o = e.attr(r, t);
                            return null == o ? "!=" === n : n ? (o += "", "=" === n ? o === i : "!=" === n ? o !== i : "^=" === n ? i && 0 === o.indexOf(i) : "*=" === n ? i && o.indexOf(i) > -1 : "$=" === n ? i && o.slice(-i.length) === i : "~=" === n ? (" " + o.replace(st, " ") + " ").indexOf(i) > -1 : "|=" === n ? o === i || o.slice(0, i.length + 1) === i + "-" : !1) : !0
                        }
                    }, CHILD: function (t, e, n, i, r) {
                        var o = "nth" !== t.slice(0, 3), a = "last" !== t.slice(-4), s = "of-type" === e;
                        return 1 === i && 0 === r ? function (t) {
                            return !!t.parentNode
                        } : function (e, n, l) {
                            var u, c, d, f, p, h, m = o !== a ? "nextSibling" : "previousSibling", g = e.parentNode, v = s && e.nodeName.toLowerCase(), y = !l && !s;
                            if (g) {
                                if (o) {
                                    for (; m;) {
                                        for (d = e; d = d[m];)if (s ? d.nodeName.toLowerCase() === v : 1 === d.nodeType)return !1;
                                        h = m = "only" === t && !h && "nextSibling"
                                    }
                                    return !0
                                }
                                if (h = [a ? g.firstChild : g.lastChild], a && y) {
                                    for (c = g[B] || (g[B] = {}), u = c[t] || [], p = u[0] === M && u[1], f = u[0] === M && u[2], d = p && g.childNodes[p]; d = ++p && d && d[m] || (f = p = 0) || h.pop();)if (1 === d.nodeType && ++f && d === e) {
                                        c[t] = [M, p, f];
                                        break
                                    }
                                } else if (y && (u = (e[B] || (e[B] = {}))[t]) && u[0] === M)f = u[1]; else for (; (d = ++p && d && d[m] || (f = p = 0) || h.pop()) && ((s ? d.nodeName.toLowerCase() !== v : 1 !== d.nodeType) || !++f || (y && ((d[B] || (d[B] = {}))[t] = [M, f]), d !== e)););
                                return f -= r, f === i || f % i === 0 && f / i >= 0
                            }
                        }
                    }, PSEUDO: function (t, n) {
                        var r, o = T.pseudos[t] || T.setFilters[t.toLowerCase()] || e.error("unsupported pseudo: " + t);
                        return o[B] ? o(n) : o.length > 1 ? (r = [t, t, "", n], T.setFilters.hasOwnProperty(t.toLowerCase()) ? i(function (t, e) {
                            for (var i, r = o(t, n), a = r.length; a--;)i = tt(t, r[a]), t[i] = !(e[i] = r[a])
                        }) : function (t) {
                            return o(t, 0, r)
                        }) : o
                    }
                },
                pseudos: {
                    not: i(function (t) {
                        var e = [], n = [], r = S(t.replace(lt, "$1"));
                        return r[B] ? i(function (t, e, n, i) {
                            for (var o, a = r(t, null, i, []), s = t.length; s--;)(o = a[s]) && (t[s] = !(e[s] = o))
                        }) : function (t, i, o) {
                            return e[0] = t, r(e, null, o, n), e[0] = null, !n.pop()
                        }
                    }), has: i(function (t) {
                        return function (n) {
                            return e(t, n).length > 0
                        }
                    }), contains: i(function (t) {
                        return t = t.replace(wt, Tt), function (e) {
                            return (e.textContent || e.innerText || C(e)).indexOf(t) > -1
                        }
                    }), lang: i(function (t) {
                        return pt.test(t || "") || e.error("unsupported lang: " + t), t = t.replace(wt, Tt).toLowerCase(), function (e) {
                            var n;
                            do if (n = O ? e.lang : e.getAttribute("xml:lang") || e.getAttribute("lang"))return n = n.toLowerCase(), n === t || 0 === n.indexOf(t + "-"); while ((e = e.parentNode) && 1 === e.nodeType);
                            return !1
                        }
                    }), target: function (e) {
                        var n = t.location && t.location.hash;
                        return n && n.slice(1) === e.id
                    }, root: function (t) {
                        return t === L
                    }, focus: function (t) {
                        return t === _.activeElement && (!_.hasFocus || _.hasFocus()) && !!(t.type || t.href || ~t.tabIndex)
                    }, enabled: function (t) {
                        return t.disabled === !1
                    }, disabled: function (t) {
                        return t.disabled === !0
                    }, checked: function (t) {
                        var e = t.nodeName.toLowerCase();
                        return "input" === e && !!t.checked || "option" === e && !!t.selected
                    }, selected: function (t) {
                        return t.parentNode && t.parentNode.selectedIndex, t.selected === !0
                    }, empty: function (t) {
                        for (t = t.firstChild; t; t = t.nextSibling)if (t.nodeType < 6)return !1;
                        return !0
                    }, parent: function (t) {
                        return !T.pseudos.empty(t)
                    }, header: function (t) {
                        return gt.test(t.nodeName)
                    }, input: function (t) {
                        return mt.test(t.nodeName)
                    }, button: function (t) {
                        var e = t.nodeName.toLowerCase();
                        return "input" === e && "button" === t.type || "button" === e
                    }, text: function (t) {
                        var e;
                        return "input" === t.nodeName.toLowerCase() && "text" === t.type && (null == (e = t.getAttribute("type")) || "text" === e.toLowerCase())
                    }, first: u(function () {
                        return [0]
                    }), last: u(function (t, e) {
                        return [e - 1]
                    }), eq: u(function (t, e, n) {
                        return [0 > n ? n + e : n]
                    }), even: u(function (t, e) {
                        for (var n = 0; e > n; n += 2)t.push(n);
                        return t
                    }), odd: u(function (t, e) {
                        for (var n = 1; e > n; n += 2)t.push(n);
                        return t
                    }), lt: u(function (t, e, n) {
                        for (var i = 0 > n ? n + e : n; --i >= 0;)t.push(i);
                        return t
                    }), gt: u(function (t, e, n) {
                        for (var i = 0 > n ? n + e : n; ++i < e;)t.push(i);
                        return t
                    })
                }
            }, T.pseudos.nth = T.pseudos.eq;
            for (x in{radio: !0, checkbox: !0, file: !0, password: !0, image: !0})T.pseudos[x] = s(x);
            for (x in{submit: !0, reset: !0})T.pseudos[x] = l(x);
            return d.prototype = T.filters = T.pseudos, T.setFilters = new d,
                E = e.tokenize = function (t, n) {
                    var i, r, o, a, s, l, u, c = V[t + " "];
                    if (c)return n ? 0 : c.slice(0);
                    for (s = t, l = [], u = T.preFilter; s;) {
                        (!i || (r = ut.exec(s))) && (r && (s = s.slice(r[0].length) || s), l.push(o = [])), i = !1, (r = ct.exec(s)) && (i = r.shift(), o.push({
                            value: i,
                            type: r[0].replace(lt, " ")
                        }), s = s.slice(i.length));
                        for (a in T.filter)!(r = ht[a].exec(s)) || u[a] && !(r = u[a](r)) || (i = r.shift(), o.push({
                            value: i,
                            type: a,
                            matches: r
                        }), s = s.slice(i.length));
                        if (!i)break
                    }
                    return n ? s.length : s ? e.error(t) : V(t, l).slice(0)
                }, S = e.compile = function (t, e) {
                var n, i = [], r = [], o = z[t + " "];
                if (!o) {
                    for (e || (e = E(t)), n = e.length; n--;)o = y(e[n]), o[B] ? i.push(o) : r.push(o);
                    o = z(t, b(r, i)), o.selector = t
                }
                return o
            }, N = e.select = function (t, e, n, i) {
                var r, o, a, s, l, u = "function" == typeof t && t, d = !i && E(t = u.selector || t);
                if (n = n || [], 1 === d.length) {
                    if (o = d[0] = d[0].slice(0), o.length > 2 && "ID" === (a = o[0]).type && w.getById && 9 === e.nodeType && O && T.relative[o[1].type]) {
                        if (e = (T.find.ID(a.matches[0].replace(wt, Tt), e) || [])[0], !e)return n;
                        u && (e = e.parentNode), t = t.slice(o.shift().value.length)
                    }
                    for (r = ht.needsContext.test(t) ? 0 : o.length; r-- && (a = o[r], !T.relative[s = a.type]);)if ((l = T.find[s]) && (i = l(a.matches[0].replace(wt, Tt), bt.test(o[0].type) && c(e.parentNode) || e))) {
                        if (o.splice(r, 1), t = i.length && f(o), !t)return Y.apply(n, i), n;
                        break
                    }
                }
                return (u || S(t, d))(i, e, !O, n, bt.test(t) && c(e.parentNode) || e), n
            }, w.sortStable = B.split("").sort(U).join("") === B, w.detectDuplicates = !!D, j(), w.sortDetached = r(function (t) {
                return 1 & t.compareDocumentPosition(_.createElement("div"))
            }), r(function (t) {
                return t.innerHTML = "<a href='#'></a>", "#" === t.firstChild.getAttribute("href")
            }) || o("type|href|height|width", function (t, e, n) {
                return n ? void 0 : t.getAttribute(e, "type" === e.toLowerCase() ? 1 : 2)
            }), w.attributes && r(function (t) {
                return t.innerHTML = "<input/>", t.firstChild.setAttribute("value", ""), "" === t.firstChild.getAttribute("value")
            }) || o("value", function (t, e, n) {
                return n || "input" !== t.nodeName.toLowerCase() ? void 0 : t.defaultValue
            }), r(function (t) {
                return null == t.getAttribute("disabled")
            }) || o(et, function (t, e, n) {
                var i;
                return n ? void 0 : t[e] === !0 ? e.toLowerCase() : (i = t.getAttributeNode(e)) && i.specified ? i.value : null
            }), e
        }(t);
        rt.find = ut, rt.expr = ut.selectors, rt.expr[":"] = rt.expr.pseudos, rt.unique = ut.uniqueSort, rt.text = ut.getText, rt.isXMLDoc = ut.isXML, rt.contains = ut.contains;
        var ct = rt.expr.match.needsContext, dt = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, ft = /^.[^:#\[\.,]*$/;
        rt.filter = function (t, e, n) {
            var i = e[0];
            return n && (t = ":not(" + t + ")"), 1 === e.length && 1 === i.nodeType ? rt.find.matchesSelector(i, t) ? [i] : [] : rt.find.matches(t, rt.grep(e, function (t) {
                return 1 === t.nodeType
            }))
        }, rt.fn.extend({
            find: function (t) {
                var e, n = [], i = this, r = i.length;
                if ("string" != typeof t)return this.pushStack(rt(t).filter(function () {
                    for (e = 0; r > e; e++)if (rt.contains(i[e], this))return !0
                }));
                for (e = 0; r > e; e++)rt.find(t, i[e], n);
                return n = this.pushStack(r > 1 ? rt.unique(n) : n), n.selector = this.selector ? this.selector + " " + t : t, n
            }, filter: function (t) {
                return this.pushStack(i(this, t || [], !1))
            }, not: function (t) {
                return this.pushStack(i(this, t || [], !0))
            }, is: function (t) {
                return !!i(this, "string" == typeof t && ct.test(t) ? rt(t) : t || [], !1).length
            }
        });
        var pt, ht = t.document, mt = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/, gt = rt.fn.init = function (t, e) {
            var n, i;
            if (!t)return this;
            if ("string" == typeof t) {
                if (n = "<" === t.charAt(0) && ">" === t.charAt(t.length - 1) && t.length >= 3 ? [null, t, null] : mt.exec(t), !n || !n[1] && e)return !e || e.jquery ? (e || pt).find(t) : this.constructor(e).find(t);
                if (n[1]) {
                    if (e = e instanceof rt ? e[0] : e, rt.merge(this, rt.parseHTML(n[1], e && e.nodeType ? e.ownerDocument || e : ht, !0)), dt.test(n[1]) && rt.isPlainObject(e))for (n in e)rt.isFunction(this[n]) ? this[n](e[n]) : this.attr(n, e[n]);
                    return this
                }
                if (i = ht.getElementById(n[2]), i && i.parentNode) {
                    if (i.id !== n[2])return pt.find(t);
                    this.length = 1, this[0] = i
                }
                return this.context = ht, this.selector = t, this
            }
            return t.nodeType ? (this.context = this[0] = t, this.length = 1, this) : rt.isFunction(t) ? "undefined" != typeof pt.ready ? pt.ready(t) : t(rt) : (void 0 !== t.selector && (this.selector = t.selector, this.context = t.context), rt.makeArray(t, this))
        };
        gt.prototype = rt.fn, pt = rt(ht);
        var vt = /^(?:parents|prev(?:Until|All))/, yt = {children: !0, contents: !0, next: !0, prev: !0};
        rt.extend({
            dir: function (t, e, n) {
                for (var i = [], r = t[e]; r && 9 !== r.nodeType && (void 0 === n || 1 !== r.nodeType || !rt(r).is(n));)1 === r.nodeType && i.push(r), r = r[e];
                return i
            }, sibling: function (t, e) {
                for (var n = []; t; t = t.nextSibling)1 === t.nodeType && t !== e && n.push(t);
                return n
            }
        }), rt.fn.extend({
            has: function (t) {
                var e, n = rt(t, this), i = n.length;
                return this.filter(function () {
                    for (e = 0; i > e; e++)if (rt.contains(this, n[e]))return !0
                })
            }, closest: function (t, e) {
                for (var n, i = 0, r = this.length, o = [], a = ct.test(t) || "string" != typeof t ? rt(t, e || this.context) : 0; r > i; i++)for (n = this[i]; n && n !== e; n = n.parentNode)if (n.nodeType < 11 && (a ? a.index(n) > -1 : 1 === n.nodeType && rt.find.matchesSelector(n, t))) {
                    o.push(n);
                    break
                }
                return this.pushStack(o.length > 1 ? rt.unique(o) : o)
            }, index: function (t) {
                return t ? "string" == typeof t ? rt.inArray(this[0], rt(t)) : rt.inArray(t.jquery ? t[0] : t, this) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
            }, add: function (t, e) {
                return this.pushStack(rt.unique(rt.merge(this.get(), rt(t, e))))
            }, addBack: function (t) {
                return this.add(null == t ? this.prevObject : this.prevObject.filter(t))
            }
        }), rt.each({
            parent: function (t) {
                var e = t.parentNode;
                return e && 11 !== e.nodeType ? e : null
            }, parents: function (t) {
                return rt.dir(t, "parentNode")
            }, parentsUntil: function (t, e, n) {
                return rt.dir(t, "parentNode", n)
            }, next: function (t) {
                return r(t, "nextSibling")
            }, prev: function (t) {
                return r(t, "previousSibling")
            }, nextAll: function (t) {
                return rt.dir(t, "nextSibling")
            }, prevAll: function (t) {
                return rt.dir(t, "previousSibling")
            }, nextUntil: function (t, e, n) {
                return rt.dir(t, "nextSibling", n)
            }, prevUntil: function (t, e, n) {
                return rt.dir(t, "previousSibling", n)
            }, siblings: function (t) {
                return rt.sibling((t.parentNode || {}).firstChild, t)
            }, children: function (t) {
                return rt.sibling(t.firstChild)
            }, contents: function (t) {
                return rt.nodeName(t, "iframe") ? t.contentDocument || t.contentWindow.document : rt.merge([], t.childNodes)
            }
        }, function (t, e) {
            rt.fn[t] = function (n, i) {
                var r = rt.map(this, e, n);
                return "Until" !== t.slice(-5) && (i = n), i && "string" == typeof i && (r = rt.filter(i, r)), this.length > 1 && (yt[t] || (r = rt.unique(r)), vt.test(t) && (r = r.reverse())), this.pushStack(r)
            }
        });
        var bt = /\S+/g, xt = {};
        rt.Callbacks = function (t) {
            t = "string" == typeof t ? xt[t] || o(t) : rt.extend({}, t);
            var e, n, i, r, a, s, l = [], u = !t.once && [], c = function (o) {
                for (n = t.memory && o, i = !0, a = s || 0, s = 0, r = l.length, e = !0; l && r > a; a++)if (l[a].apply(o[0], o[1]) === !1 && t.stopOnFalse) {
                    n = !1;
                    break
                }
                e = !1, l && (u ? u.length && c(u.shift()) : n ? l = [] : d.disable())
            }, d = {
                add: function () {
                    if (l) {
                        var i = l.length;
                        !function o(e) {
                            rt.each(e, function (e, n) {
                                var i = rt.type(n);
                                "function" === i ? t.unique && d.has(n) || l.push(n) : n && n.length && "string" !== i && o(n)
                            })
                        }(arguments), e ? r = l.length : n && (s = i, c(n))
                    }
                    return this
                }, remove: function () {
                    return l && rt.each(arguments, function (t, n) {
                        for (var i; (i = rt.inArray(n, l, i)) > -1;)l.splice(i, 1), e && (r >= i && r--, a >= i && a--)
                    }), this
                }, has: function (t) {
                    return t ? rt.inArray(t, l) > -1 : !(!l || !l.length)
                }, empty: function () {
                    return l = [], r = 0, this
                }, disable: function () {
                    return l = u = n = void 0, this
                }, disabled: function () {
                    return !l
                }, lock: function () {
                    return u = void 0, n || d.disable(), this
                }, locked: function () {
                    return !u
                }, fireWith: function (t, n) {
                    return !l || i && !u || (n = n || [], n = [t, n.slice ? n.slice() : n], e ? u.push(n) : c(n)), this
                }, fire: function () {
                    return d.fireWith(this, arguments), this
                }, fired: function () {
                    return !!i
                }
            };
            return d
        }, rt.extend({
            Deferred: function (t) {
                var e = [["resolve", "done", rt.Callbacks("once memory"), "resolved"], ["reject", "fail", rt.Callbacks("once memory"), "rejected"], ["notify", "progress", rt.Callbacks("memory")]], n = "pending", i = {
                    state: function () {
                        return n
                    }, always: function () {
                        return r.done(arguments).fail(arguments), this
                    }, then: function () {
                        var t = arguments;
                        return rt.Deferred(function (n) {
                            rt.each(e, function (e, o) {
                                var a = rt.isFunction(t[e]) && t[e];
                                r[o[1]](function () {
                                    var t = a && a.apply(this, arguments);
                                    t && rt.isFunction(t.promise) ? t.promise().done(n.resolve).fail(n.reject).progress(n.notify) : n[o[0] + "With"](this === i ? n.promise() : this, a ? [t] : arguments)
                                })
                            }), t = null
                        }).promise()
                    }, promise: function (t) {
                        return null != t ? rt.extend(t, i) : i
                    }
                }, r = {};
                return i.pipe = i.then, rt.each(e, function (t, o) {
                    var a = o[2], s = o[3];
                    i[o[1]] = a.add, s && a.add(function () {
                        n = s
                    }, e[1 ^ t][2].disable, e[2][2].lock), r[o[0]] = function () {
                        return r[o[0] + "With"](this === r ? i : this, arguments), this
                    }, r[o[0] + "With"] = a.fireWith
                }), i.promise(r), t && t.call(r, r), r
            }, when: function (t) {
                var e, n, i, r = 0, o = K.call(arguments), a = o.length, s = 1 !== a || t && rt.isFunction(t.promise) ? a : 0, l = 1 === s ? t : rt.Deferred(), u = function (t, n, i) {
                    return function (r) {
                        n[t] = this, i[t] = arguments.length > 1 ? K.call(arguments) : r, i === e ? l.notifyWith(n, i) : --s || l.resolveWith(n, i)
                    }
                };
                if (a > 1)for (e = new Array(a), n = new Array(a), i = new Array(a); a > r; r++)o[r] && rt.isFunction(o[r].promise) ? o[r].promise().done(u(r, i, o)).fail(l.reject).progress(u(r, n, e)) : --s;
                return s || l.resolveWith(i, o), l.promise()
            }
        });
        var wt;
        rt.fn.ready = function (t) {
            return rt.ready.promise().done(t), this
        }, rt.extend({
            isReady: !1, readyWait: 1, holdReady: function (t) {
                t ? rt.readyWait++ : rt.ready(!0)
            }, ready: function (t) {
                if (t === !0 ? !--rt.readyWait : !rt.isReady) {
                    if (!ht.body)return setTimeout(rt.ready);
                    rt.isReady = !0, t !== !0 && --rt.readyWait > 0 || (wt.resolveWith(ht, [rt]), rt.fn.triggerHandler && (rt(ht).triggerHandler("ready"), rt(ht).off("ready")))
                }
            }
        }), rt.ready.promise = function (e) {
            if (!wt)if (wt = rt.Deferred(), "complete" === ht.readyState)setTimeout(rt.ready); else if (ht.addEventListener)ht.addEventListener("DOMContentLoaded", s, !1), t.addEventListener("load", s, !1); else {
                ht.attachEvent("onreadystatechange", s), t.attachEvent("onload", s);
                var n = !1;
                try {
                    n = null == t.frameElement && ht.documentElement
                } catch (i) {
                }
                n && n.doScroll && !function r() {
                    if (!rt.isReady) {
                        try {
                            n.doScroll("left")
                        } catch (t) {
                            return setTimeout(r, 50)
                        }
                        a(), rt.ready()
                    }
                }()
            }
            return wt.promise(e)
        };
        var Tt, Ct = "undefined";
        for (Tt in rt(nt))break;
        nt.ownLast = "0" !== Tt, nt.inlineBlockNeedsLayout = !1, rt(function () {
            var t, e, n, i;
            n = ht.getElementsByTagName("body")[0], n && n.style && (e = ht.createElement("div"), i = ht.createElement("div"), i.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", n.appendChild(i).appendChild(e), typeof e.style.zoom !== Ct && (e.style.cssText = "display:inline;margin:0;border:0;padding:1px;width:1px;zoom:1", nt.inlineBlockNeedsLayout = t = 3 === e.offsetWidth, t && (n.style.zoom = 1)), n.removeChild(i))
        }), function () {
            var t = ht.createElement("div");
            if (null == nt.deleteExpando) {
                nt.deleteExpando = !0;
                try {
                    delete t.test
                } catch (e) {
                    nt.deleteExpando = !1
                }
            }
            t = null
        }(), rt.acceptData = function (t) {
            var e = rt.noData[(t.nodeName + " ").toLowerCase()], n = +t.nodeType || 1;
            return 1 !== n && 9 !== n ? !1 : !e || e !== !0 && t.getAttribute("classid") === e
        };
        var kt = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/, Et = /([A-Z])/g;
        rt.extend({
            cache: {},
            noData: {"applet ": !0, "embed ": !0, "object ": "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},
            hasData: function (t) {
                return t = t.nodeType ? rt.cache[t[rt.expando]] : t[rt.expando], !!t && !u(t)
            },
            data: function (t, e, n) {
                return c(t, e, n)
            },
            removeData: function (t, e) {
                return d(t, e)
            },
            _data: function (t, e, n) {
                return c(t, e, n, !0)
            },
            _removeData: function (t, e) {
                return d(t, e, !0)
            }
        }), rt.fn.extend({
            data: function (t, e) {
                var n, i, r, o = this[0], a = o && o.attributes;
                if (void 0 === t) {
                    if (this.length && (r = rt.data(o), 1 === o.nodeType && !rt._data(o, "parsedAttrs"))) {
                        for (n = a.length; n--;)a[n] && (i = a[n].name, 0 === i.indexOf("data-") && (i = rt.camelCase(i.slice(5)), l(o, i, r[i])));
                        rt._data(o, "parsedAttrs", !0)
                    }
                    return r
                }
                return "object" == typeof t ? this.each(function () {
                    rt.data(this, t)
                }) : arguments.length > 1 ? this.each(function () {
                    rt.data(this, t, e)
                }) : o ? l(o, t, rt.data(o, t)) : void 0
            }, removeData: function (t) {
                return this.each(function () {
                    rt.removeData(this, t)
                })
            }
        }), rt.extend({
            queue: function (t, e, n) {
                var i;
                return t ? (e = (e || "fx") + "queue", i = rt._data(t, e), n && (!i || rt.isArray(n) ? i = rt._data(t, e, rt.makeArray(n)) : i.push(n)), i || []) : void 0
            }, dequeue: function (t, e) {
                e = e || "fx";
                var n = rt.queue(t, e), i = n.length, r = n.shift(), o = rt._queueHooks(t, e), a = function () {
                    rt.dequeue(t, e)
                };
                "inprogress" === r && (r = n.shift(), i--), r && ("fx" === e && n.unshift("inprogress"), delete o.stop, r.call(t, a, o)), !i && o && o.empty.fire()
            }, _queueHooks: function (t, e) {
                var n = e + "queueHooks";
                return rt._data(t, n) || rt._data(t, n, {
                        empty: rt.Callbacks("once memory").add(function () {
                            rt._removeData(t, e + "queue"), rt._removeData(t, n)
                        })
                    })
            }
        }), rt.fn.extend({
            queue: function (t, e) {
                var n = 2;
                return "string" != typeof t && (e = t, t = "fx", n--), arguments.length < n ? rt.queue(this[0], t) : void 0 === e ? this : this.each(function () {
                    var n = rt.queue(this, t, e);
                    rt._queueHooks(this, t), "fx" === t && "inprogress" !== n[0] && rt.dequeue(this, t)
                })
            }, dequeue: function (t) {
                return this.each(function () {
                    rt.dequeue(this, t)
                })
            }, clearQueue: function (t) {
                return this.queue(t || "fx", [])
            }, promise: function (t, e) {
                var n, i = 1, r = rt.Deferred(), o = this, a = this.length, s = function () {
                    --i || r.resolveWith(o, [o])
                };
                for ("string" != typeof t && (e = t, t = void 0), t = t || "fx"; a--;)n = rt._data(o[a], t + "queueHooks"), n && n.empty && (i++, n.empty.add(s));
                return s(), r.promise(e)
            }
        });
        var St = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source, Nt = ["Top", "Right", "Bottom", "Left"], At = function (t, e) {
            return t = e || t, "none" === rt.css(t, "display") || !rt.contains(t.ownerDocument, t)
        }, $t = rt.access = function (t, e, n, i, r, o, a) {
            var s = 0, l = t.length, u = null == n;
            if ("object" === rt.type(n)) {
                r = !0;
                for (s in n)rt.access(t, e, s, n[s], !0, o, a)
            } else if (void 0 !== i && (r = !0, rt.isFunction(i) || (a = !0), u && (a ? (e.call(t, i), e = null) : (u = e, e = function (t, e, n) {
                    return u.call(rt(t), n)
                })), e))for (; l > s; s++)e(t[s], n, a ? i : i.call(t[s], s, e(t[s], n)));
            return r ? t : u ? e.call(t) : l ? e(t[0], n) : o
        }, Dt = /^(?:checkbox|radio)$/i;
        !function () {
            var t = ht.createElement("input"), e = ht.createElement("div"), n = ht.createDocumentFragment();
            if (e.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", nt.leadingWhitespace = 3 === e.firstChild.nodeType, nt.tbody = !e.getElementsByTagName("tbody").length, nt.htmlSerialize = !!e.getElementsByTagName("link").length, nt.html5Clone = "<:nav></:nav>" !== ht.createElement("nav").cloneNode(!0).outerHTML, t.type = "checkbox", t.checked = !0, n.appendChild(t), nt.appendChecked = t.checked, e.innerHTML = "<textarea>x</textarea>", nt.noCloneChecked = !!e.cloneNode(!0).lastChild.defaultValue, n.appendChild(e), e.innerHTML = "<input type='radio' checked='checked' name='t'/>", nt.checkClone = e.cloneNode(!0).cloneNode(!0).lastChild.checked, nt.noCloneEvent = !0, e.attachEvent && (e.attachEvent("onclick", function () {
                    nt.noCloneEvent = !1
                }), e.cloneNode(!0).click()), null == nt.deleteExpando) {
                nt.deleteExpando = !0;
                try {
                    delete e.test
                } catch (i) {
                    nt.deleteExpando = !1
                }
            }
        }(), function () {
            var e, n, i = ht.createElement("div");
            for (e in{
                submit: !0,
                change: !0,
                focusin: !0
            })n = "on" + e, (nt[e + "Bubbles"] = n in t) || (i.setAttribute(n, "t"), nt[e + "Bubbles"] = i.attributes[n].expando === !1);
            i = null
        }();
        var jt = /^(?:input|select|textarea)$/i, _t = /^key/, Lt = /^(?:mouse|pointer|contextmenu)|click/, Ot = /^(?:focusinfocus|focusoutblur)$/, It = /^([^.]*)(?:\.(.+)|)$/;
        rt.event = {
            global: {},
            add: function (t, e, n, i, r) {
                var o, a, s, l, u, c, d, f, p, h, m, g = rt._data(t);
                if (g) {
                    for (n.handler && (l = n, n = l.handler, r = l.selector), n.guid || (n.guid = rt.guid++), (a = g.events) || (a = g.events = {}), (c = g.handle) || (c = g.handle = function (t) {
                        return typeof rt === Ct || t && rt.event.triggered === t.type ? void 0 : rt.event.dispatch.apply(c.elem, arguments)
                    }, c.elem = t), e = (e || "").match(bt) || [""], s = e.length; s--;)o = It.exec(e[s]) || [], p = m = o[1], h = (o[2] || "").split(".").sort(), p && (u = rt.event.special[p] || {}, p = (r ? u.delegateType : u.bindType) || p, u = rt.event.special[p] || {}, d = rt.extend({
                        type: p,
                        origType: m,
                        data: i,
                        handler: n,
                        guid: n.guid,
                        selector: r,
                        needsContext: r && rt.expr.match.needsContext.test(r),
                        namespace: h.join(".")
                    }, l), (f = a[p]) || (f = a[p] = [], f.delegateCount = 0, u.setup && u.setup.call(t, i, h, c) !== !1 || (t.addEventListener ? t.addEventListener(p, c, !1) : t.attachEvent && t.attachEvent("on" + p, c))), u.add && (u.add.call(t, d), d.handler.guid || (d.handler.guid = n.guid)), r ? f.splice(f.delegateCount++, 0, d) : f.push(d), rt.event.global[p] = !0);
                    t = null
                }
            },
            remove: function (t, e, n, i, r) {
                var o, a, s, l, u, c, d, f, p, h, m, g = rt.hasData(t) && rt._data(t);
                if (g && (c = g.events)) {
                    for (e = (e || "").match(bt) || [""], u = e.length; u--;)if (s = It.exec(e[u]) || [], p = m = s[1], h = (s[2] || "").split(".").sort(), p) {
                        for (d = rt.event.special[p] || {}, p = (i ? d.delegateType : d.bindType) || p, f = c[p] || [], s = s[2] && new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)"), l = o = f.length; o--;)a = f[o], !r && m !== a.origType || n && n.guid !== a.guid || s && !s.test(a.namespace) || i && i !== a.selector && ("**" !== i || !a.selector) || (f.splice(o, 1), a.selector && f.delegateCount--, d.remove && d.remove.call(t, a));
                        l && !f.length && (d.teardown && d.teardown.call(t, h, g.handle) !== !1 || rt.removeEvent(t, p, g.handle), delete c[p])
                    } else for (p in c)rt.event.remove(t, p + e[u], n, i, !0);
                    rt.isEmptyObject(c) && (delete g.handle, rt._removeData(t, "events"))
                }
            },
            trigger: function (e, n, i, r) {
                var o, a, s, l, u, c, d, f = [i || ht], p = et.call(e, "type") ? e.type : e, h = et.call(e, "namespace") ? e.namespace.split(".") : [];
                if (s = c = i = i || ht, 3 !== i.nodeType && 8 !== i.nodeType && !Ot.test(p + rt.event.triggered) && (p.indexOf(".") >= 0 && (h = p.split("."), p = h.shift(), h.sort()), a = p.indexOf(":") < 0 && "on" + p, e = e[rt.expando] ? e : new rt.Event(p, "object" == typeof e && e), e.isTrigger = r ? 2 : 3, e.namespace = h.join("."), e.namespace_re = e.namespace ? new RegExp("(^|\\.)" + h.join("\\.(?:.*\\.|)") + "(\\.|$)") : null, e.result = void 0, e.target || (e.target = i), n = null == n ? [e] : rt.makeArray(n, [e]), u = rt.event.special[p] || {}, r || !u.trigger || u.trigger.apply(i, n) !== !1)) {
                    if (!r && !u.noBubble && !rt.isWindow(i)) {
                        for (l = u.delegateType || p, Ot.test(l + p) || (s = s.parentNode); s; s = s.parentNode)f.push(s), c = s;
                        c === (i.ownerDocument || ht) && f.push(c.defaultView || c.parentWindow || t)
                    }
                    for (d = 0; (s = f[d++]) && !e.isPropagationStopped();)e.type = d > 1 ? l : u.bindType || p, o = (rt._data(s, "events") || {})[e.type] && rt._data(s, "handle"), o && o.apply(s, n), o = a && s[a], o && o.apply && rt.acceptData(s) && (e.result = o.apply(s, n), e.result === !1 && e.preventDefault());
                    if (e.type = p, !r && !e.isDefaultPrevented() && (!u._default || u._default.apply(f.pop(), n) === !1) && rt.acceptData(i) && a && i[p] && !rt.isWindow(i)) {
                        c = i[a], c && (i[a] = null), rt.event.triggered = p;
                        try {
                            i[p]()
                        } catch (m) {
                        }
                        rt.event.triggered = void 0, c && (i[a] = c)
                    }
                    return e.result
                }
            },
            dispatch: function (t) {
                t = rt.event.fix(t);
                var e, n, i, r, o, a = [], s = K.call(arguments), l = (rt._data(this, "events") || {})[t.type] || [], u = rt.event.special[t.type] || {};
                if (s[0] = t, t.delegateTarget = this, !u.preDispatch || u.preDispatch.call(this, t) !== !1) {
                    for (a = rt.event.handlers.call(this, t, l), e = 0; (r = a[e++]) && !t.isPropagationStopped();)for (t.currentTarget = r.elem, o = 0; (i = r.handlers[o++]) && !t.isImmediatePropagationStopped();)(!t.namespace_re || t.namespace_re.test(i.namespace)) && (t.handleObj = i, t.data = i.data, n = ((rt.event.special[i.origType] || {}).handle || i.handler).apply(r.elem, s), void 0 !== n && (t.result = n) === !1 && (t.preventDefault(), t.stopPropagation()));
                    return u.postDispatch && u.postDispatch.call(this, t), t.result
                }
            },
            handlers: function (t, e) {
                var n, i, r, o, a = [], s = e.delegateCount, l = t.target;
                if (s && l.nodeType && (!t.button || "click" !== t.type))for (; l != this; l = l.parentNode || this)if (1 === l.nodeType && (l.disabled !== !0 || "click" !== t.type)) {
                    for (r = [], o = 0; s > o; o++)i = e[o], n = i.selector + " ", void 0 === r[n] && (r[n] = i.needsContext ? rt(n, this).index(l) >= 0 : rt.find(n, this, null, [l]).length), r[n] && r.push(i);
                    r.length && a.push({elem: l, handlers: r})
                }
                return s < e.length && a.push({elem: this, handlers: e.slice(s)}), a
            },
            fix: function (t) {
                if (t[rt.expando])return t;
                var e, n, i, r = t.type, o = t, a = this.fixHooks[r];
                for (a || (this.fixHooks[r] = a = Lt.test(r) ? this.mouseHooks : _t.test(r) ? this.keyHooks : {}), i = a.props ? this.props.concat(a.props) : this.props, t = new rt.Event(o), e = i.length; e--;)n = i[e], t[n] = o[n];
                return t.target || (t.target = o.srcElement || ht), 3 === t.target.nodeType && (t.target = t.target.parentNode), t.metaKey = !!t.metaKey, a.filter ? a.filter(t, o) : t
            },
            props: "altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),
            fixHooks: {},
            keyHooks: {
                props: "char charCode key keyCode".split(" "), filter: function (t, e) {
                    return null == t.which && (t.which = null != e.charCode ? e.charCode : e.keyCode), t
                }
            },
            mouseHooks: {
                props: "button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),
                filter: function (t, e) {
                    var n, i, r, o = e.button, a = e.fromElement;
                    return null == t.pageX && null != e.clientX && (i = t.target.ownerDocument || ht, r = i.documentElement, n = i.body, t.pageX = e.clientX + (r && r.scrollLeft || n && n.scrollLeft || 0) - (r && r.clientLeft || n && n.clientLeft || 0), t.pageY = e.clientY + (r && r.scrollTop || n && n.scrollTop || 0) - (r && r.clientTop || n && n.clientTop || 0)), !t.relatedTarget && a && (t.relatedTarget = a === t.target ? e.toElement : a), t.which || void 0 === o || (t.which = 1 & o ? 1 : 2 & o ? 3 : 4 & o ? 2 : 0), t
                }
            },
            special: {
                load: {noBubble: !0}, focus: {
                    trigger: function () {
                        if (this !== h() && this.focus)try {
                            return this.focus(), !1
                        } catch (t) {
                        }
                    }, delegateType: "focusin"
                }, blur: {
                    trigger: function () {
                        return this === h() && this.blur ? (this.blur(), !1) : void 0
                    }, delegateType: "focusout"
                }, click: {
                    trigger: function () {
                        return rt.nodeName(this, "input") && "checkbox" === this.type && this.click ? (this.click(), !1) : void 0
                    }, _default: function (t) {
                        return rt.nodeName(t.target, "a")
                    }
                }, beforeunload: {
                    postDispatch: function (t) {
                        void 0 !== t.result && t.originalEvent && (t.originalEvent.returnValue = t.result)
                    }
                }
            },
            simulate: function (t, e, n, i) {
                var r = rt.extend(new rt.Event, n, {type: t, isSimulated: !0, originalEvent: {}});
                i ? rt.event.trigger(r, null, e) : rt.event.dispatch.call(e, r), r.isDefaultPrevented() && n.preventDefault()
            }
        }, rt.removeEvent = ht.removeEventListener ? function (t, e, n) {
            t.removeEventListener && t.removeEventListener(e, n, !1)
        } : function (t, e, n) {
            var i = "on" + e;
            t.detachEvent && (typeof t[i] === Ct && (t[i] = null), t.detachEvent(i, n))
        }, rt.Event = function (t, e) {
            return this instanceof rt.Event ? (t && t.type ? (this.originalEvent = t, this.type = t.type, this.isDefaultPrevented = t.defaultPrevented || void 0 === t.defaultPrevented && t.returnValue === !1 ? f : p) : this.type = t, e && rt.extend(this, e), this.timeStamp = t && t.timeStamp || rt.now(), void(this[rt.expando] = !0)) : new rt.Event(t, e)
        }, rt.Event.prototype = {
            isDefaultPrevented: p,
            isPropagationStopped: p,
            isImmediatePropagationStopped: p,
            preventDefault: function () {
                var t = this.originalEvent;
                this.isDefaultPrevented = f, t && (t.preventDefault ? t.preventDefault() : t.returnValue = !1)
            },
            stopPropagation: function () {
                var t = this.originalEvent;
                this.isPropagationStopped = f, t && (t.stopPropagation && t.stopPropagation(), t.cancelBubble = !0)
            },
            stopImmediatePropagation: function () {
                var t = this.originalEvent;
                this.isImmediatePropagationStopped = f, t && t.stopImmediatePropagation && t.stopImmediatePropagation(), this.stopPropagation()
            }
        }, rt.each({
            mouseenter: "mouseover",
            mouseleave: "mouseout",
            pointerenter: "pointerover",
            pointerleave: "pointerout"
        }, function (t, e) {
            rt.event.special[t] = {
                delegateType: e, bindType: e, handle: function (t) {
                    var n, i = this, r = t.relatedTarget, o = t.handleObj;
                    return (!r || r !== i && !rt.contains(i, r)) && (t.type = o.origType, n = o.handler.apply(this, arguments), t.type = e), n
                }
            }
        }), nt.submitBubbles || (rt.event.special.submit = {
            setup: function () {
                return rt.nodeName(this, "form") ? !1 : void rt.event.add(this, "click._submit keypress._submit", function (t) {
                    var e = t.target, n = rt.nodeName(e, "input") || rt.nodeName(e, "button") ? e.form : void 0;
                    n && !rt._data(n, "submitBubbles") && (rt.event.add(n, "submit._submit", function (t) {
                        t._submit_bubble = !0
                    }), rt._data(n, "submitBubbles", !0))
                })
            }, postDispatch: function (t) {
                t._submit_bubble && (delete t._submit_bubble, this.parentNode && !t.isTrigger && rt.event.simulate("submit", this.parentNode, t, !0))
            }, teardown: function () {
                return rt.nodeName(this, "form") ? !1 : void rt.event.remove(this, "._submit")
            }
        }), nt.changeBubbles || (rt.event.special.change = {
            setup: function () {
                return jt.test(this.nodeName) ? (("checkbox" === this.type || "radio" === this.type) && (rt.event.add(this, "propertychange._change", function (t) {
                    "checked" === t.originalEvent.propertyName && (this._just_changed = !0)
                }), rt.event.add(this, "click._change", function (t) {
                    this._just_changed && !t.isTrigger && (this._just_changed = !1), rt.event.simulate("change", this, t, !0)
                })), !1) : void rt.event.add(this, "beforeactivate._change", function (t) {
                    var e = t.target;
                    jt.test(e.nodeName) && !rt._data(e, "changeBubbles") && (rt.event.add(e, "change._change", function (t) {
                        !this.parentNode || t.isSimulated || t.isTrigger || rt.event.simulate("change", this.parentNode, t, !0)
                    }), rt._data(e, "changeBubbles", !0))
                })
            }, handle: function (t) {
                var e = t.target;
                return this !== e || t.isSimulated || t.isTrigger || "radio" !== e.type && "checkbox" !== e.type ? t.handleObj.handler.apply(this, arguments) : void 0
            }, teardown: function () {
                return rt.event.remove(this, "._change"), !jt.test(this.nodeName)
            }
        }), nt.focusinBubbles || rt.each({focus: "focusin", blur: "focusout"}, function (t, e) {
            var n = function (t) {
                rt.event.simulate(e, t.target, rt.event.fix(t), !0)
            };
            rt.event.special[e] = {
                setup: function () {
                    var i = this.ownerDocument || this, r = rt._data(i, e);
                    r || i.addEventListener(t, n, !0), rt._data(i, e, (r || 0) + 1)
                }, teardown: function () {
                    var i = this.ownerDocument || this, r = rt._data(i, e) - 1;
                    r ? rt._data(i, e, r) : (i.removeEventListener(t, n, !0), rt._removeData(i, e))
                }
            }
        }), rt.fn.extend({
            on: function (t, e, n, i, r) {
                var o, a;
                if ("object" == typeof t) {
                    "string" != typeof e && (n = n || e, e = void 0);
                    for (o in t)this.on(o, e, n, t[o], r);
                    return this
                }
                if (null == n && null == i ? (i = e, n = e = void 0) : null == i && ("string" == typeof e ? (i = n, n = void 0) : (i = n, n = e, e = void 0)), i === !1)i = p; else if (!i)return this;
                return 1 === r && (a = i, i = function (t) {
                    return rt().off(t), a.apply(this, arguments)
                }, i.guid = a.guid || (a.guid = rt.guid++)), this.each(function () {
                    rt.event.add(this, t, i, n, e)
                })
            }, one: function (t, e, n, i) {
                return this.on(t, e, n, i, 1)
            }, off: function (t, e, n) {
                var i, r;
                if (t && t.preventDefault && t.handleObj)return i = t.handleObj, rt(t.delegateTarget).off(i.namespace ? i.origType + "." + i.namespace : i.origType, i.selector, i.handler), this;
                if ("object" == typeof t) {
                    for (r in t)this.off(r, e, t[r]);
                    return this
                }
                return (e === !1 || "function" == typeof e) && (n = e, e = void 0), n === !1 && (n = p), this.each(function () {
                    rt.event.remove(this, t, n, e)
                })
            }, trigger: function (t, e) {
                return this.each(function () {
                    rt.event.trigger(t, e, this)
                })
            }, triggerHandler: function (t, e) {
                var n = this[0];
                return n ? rt.event.trigger(t, e, n, !0) : void 0
            }
        });
        var Pt = "abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video", qt = / jQuery\d+="(?:null|\d+)"/g, Ht = new RegExp("<(?:" + Pt + ")[\\s/>]", "i"), Bt = /^\s+/, Rt = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi, Mt = /<([\w:]+)/, Ft = /<tbody/i, Wt = /<|&#?\w+;/, Vt = /<(?:script|style|link)/i, zt = /checked\s*(?:[^=]|=\s*.checked.)/i, Ut = /^$|\/(?:java|ecma)script/i, Xt = /^true\/(.*)/, Gt = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g, Kt = {
            option: [1, "<select multiple='multiple'>", "</select>"],
            legend: [1, "<fieldset>", "</fieldset>"],
            area: [1, "<map>", "</map>"],
            param: [1, "<object>", "</object>"],
            thead: [1, "<table>", "</table>"],
            tr: [2, "<table><tbody>", "</tbody></table>"],
            col: [2, "<table><tbody></tbody><colgroup>", "</colgroup></table>"],
            td: [3, "<table><tbody><tr>", "</tr></tbody></table>"],
            _default: nt.htmlSerialize ? [0, "", ""] : [1, "X<div>", "</div>"]
        }, Qt = m(ht), Jt = Qt.appendChild(ht.createElement("div"));
        Kt.optgroup = Kt.option, Kt.tbody = Kt.tfoot = Kt.colgroup = Kt.caption = Kt.thead, Kt.th = Kt.td, rt.extend({
            clone: function (t, e, n) {
                var i, r, o, a, s, l = rt.contains(t.ownerDocument, t);
                if (nt.html5Clone || rt.isXMLDoc(t) || !Ht.test("<" + t.nodeName + ">") ? o = t.cloneNode(!0) : (Jt.innerHTML = t.outerHTML, Jt.removeChild(o = Jt.firstChild)), !(nt.noCloneEvent && nt.noCloneChecked || 1 !== t.nodeType && 11 !== t.nodeType || rt.isXMLDoc(t)))for (i = g(o), s = g(t), a = 0; null != (r = s[a]); ++a)i[a] && C(r, i[a]);
                if (e)if (n)for (s = s || g(t), i = i || g(o), a = 0; null != (r = s[a]); a++)T(r, i[a]); else T(t, o);
                return i = g(o, "script"), i.length > 0 && w(i, !l && g(t, "script")), i = s = r = null, o
            }, buildFragment: function (t, e, n, i) {
                for (var r, o, a, s, l, u, c, d = t.length, f = m(e), p = [], h = 0; d > h; h++)if (o = t[h], o || 0 === o)if ("object" === rt.type(o))rt.merge(p, o.nodeType ? [o] : o); else if (Wt.test(o)) {
                    for (s = s || f.appendChild(e.createElement("div")), l = (Mt.exec(o) || ["", ""])[1].toLowerCase(), c = Kt[l] || Kt._default, s.innerHTML = c[1] + o.replace(Rt, "<$1></$2>") + c[2], r = c[0]; r--;)s = s.lastChild;
                    if (!nt.leadingWhitespace && Bt.test(o) && p.push(e.createTextNode(Bt.exec(o)[0])), !nt.tbody)for (o = "table" !== l || Ft.test(o) ? "<table>" !== c[1] || Ft.test(o) ? 0 : s : s.firstChild, r = o && o.childNodes.length; r--;)rt.nodeName(u = o.childNodes[r], "tbody") && !u.childNodes.length && o.removeChild(u);
                    for (rt.merge(p, s.childNodes), s.textContent = ""; s.firstChild;)s.removeChild(s.firstChild);
                    s = f.lastChild
                } else p.push(e.createTextNode(o));
                for (s && f.removeChild(s), nt.appendChecked || rt.grep(g(p, "input"), v), h = 0; o = p[h++];)if ((!i || -1 === rt.inArray(o, i)) && (a = rt.contains(o.ownerDocument, o), s = g(f.appendChild(o), "script"), a && w(s), n))for (r = 0; o = s[r++];)Ut.test(o.type || "") && n.push(o);
                return s = null, f
            }, cleanData: function (t, e) {
                for (var n, i, r, o, a = 0, s = rt.expando, l = rt.cache, u = nt.deleteExpando, c = rt.event.special; null != (n = t[a]); a++)if ((e || rt.acceptData(n)) && (r = n[s], o = r && l[r])) {
                    if (o.events)for (i in o.events)c[i] ? rt.event.remove(n, i) : rt.removeEvent(n, i, o.handle);
                    l[r] && (delete l[r], u ? delete n[s] : typeof n.removeAttribute !== Ct ? n.removeAttribute(s) : n[s] = null, G.push(r))
                }
            }
        }), rt.fn.extend({
            text: function (t) {
                return $t(this, function (t) {
                    return void 0 === t ? rt.text(this) : this.empty().append((this[0] && this[0].ownerDocument || ht).createTextNode(t))
                }, null, t, arguments.length)
            }, append: function () {
                return this.domManip(arguments, function (t) {
                    if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
                        var e = y(this, t);
                        e.appendChild(t)
                    }
                })
            }, prepend: function () {
                return this.domManip(arguments, function (t) {
                    if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
                        var e = y(this, t);
                        e.insertBefore(t, e.firstChild)
                    }
                })
            }, before: function () {
                return this.domManip(arguments, function (t) {
                    this.parentNode && this.parentNode.insertBefore(t, this)
                })
            }, after: function () {
                return this.domManip(arguments, function (t) {
                    this.parentNode && this.parentNode.insertBefore(t, this.nextSibling)
                })
            }, remove: function (t, e) {
                for (var n, i = t ? rt.filter(t, this) : this, r = 0; null != (n = i[r]); r++)e || 1 !== n.nodeType || rt.cleanData(g(n)), n.parentNode && (e && rt.contains(n.ownerDocument, n) && w(g(n, "script")), n.parentNode.removeChild(n));
                return this
            }, empty: function () {
                for (var t, e = 0; null != (t = this[e]); e++) {
                    for (1 === t.nodeType && rt.cleanData(g(t, !1)); t.firstChild;)t.removeChild(t.firstChild);
                    t.options && rt.nodeName(t, "select") && (t.options.length = 0)
                }
                return this
            }, clone: function (t, e) {
                return t = null == t ? !1 : t, e = null == e ? t : e, this.map(function () {
                    return rt.clone(this, t, e)
                })
            }, html: function (t) {
                return $t(this, function (t) {
                    var e = this[0] || {}, n = 0, i = this.length;
                    if (void 0 === t)return 1 === e.nodeType ? e.innerHTML.replace(qt, "") : void 0;
                    if (!("string" != typeof t || Vt.test(t) || !nt.htmlSerialize && Ht.test(t) || !nt.leadingWhitespace && Bt.test(t) || Kt[(Mt.exec(t) || ["", ""])[1].toLowerCase()])) {
                        t = t.replace(Rt, "<$1></$2>");
                        try {
                            for (; i > n; n++)e = this[n] || {}, 1 === e.nodeType && (rt.cleanData(g(e, !1)), e.innerHTML = t);
                            e = 0
                        } catch (r) {
                        }
                    }
                    e && this.empty().append(t)
                }, null, t, arguments.length)
            }, replaceWith: function () {
                var t = arguments[0];
                return this.domManip(arguments, function (e) {
                    t = this.parentNode, rt.cleanData(g(this)), t && t.replaceChild(e, this)
                }), t && (t.length || t.nodeType) ? this : this.remove()
            }, detach: function (t) {
                return this.remove(t, !0)
            }, domManip: function (t, e) {
                t = Q.apply([], t);
                var n, i, r, o, a, s, l = 0, u = this.length, c = this, d = u - 1, f = t[0], p = rt.isFunction(f);
                if (p || u > 1 && "string" == typeof f && !nt.checkClone && zt.test(f))return this.each(function (n) {
                    var i = c.eq(n);
                    p && (t[0] = f.call(this, n, i.html())), i.domManip(t, e)
                });
                if (u && (s = rt.buildFragment(t, this[0].ownerDocument, !1, this), n = s.firstChild, 1 === s.childNodes.length && (s = n), n)) {
                    for (o = rt.map(g(s, "script"), b), r = o.length; u > l; l++)i = s, l !== d && (i = rt.clone(i, !0, !0), r && rt.merge(o, g(i, "script"))), e.call(this[l], i, l);
                    if (r)for (a = o[o.length - 1].ownerDocument, rt.map(o, x), l = 0; r > l; l++)i = o[l], Ut.test(i.type || "") && !rt._data(i, "globalEval") && rt.contains(a, i) && (i.src ? rt._evalUrl && rt._evalUrl(i.src) : rt.globalEval((i.text || i.textContent || i.innerHTML || "").replace(Gt, "")));
                    s = n = null
                }
                return this
            }
        }), rt.each({
            appendTo: "append",
            prependTo: "prepend",
            insertBefore: "before",
            insertAfter: "after",
            replaceAll: "replaceWith"
        }, function (t, e) {
            rt.fn[t] = function (t) {
                for (var n, i = 0, r = [], o = rt(t), a = o.length - 1; a >= i; i++)n = i === a ? this : this.clone(!0), rt(o[i])[e](n), J.apply(r, n.get());
                return this.pushStack(r)
            }
        });
        var Yt, Zt = {};
        !function () {
            var t;
            nt.shrinkWrapBlocks = function () {
                if (null != t)return t;
                t = !1;
                var e, n, i;
                return n = ht.getElementsByTagName("body")[0], n && n.style ? (e = ht.createElement("div"), i = ht.createElement("div"), i.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", n.appendChild(i).appendChild(e), typeof e.style.zoom !== Ct && (e.style.cssText = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:1px;width:1px;zoom:1", e.appendChild(ht.createElement("div")).style.width = "5px", t = 3 !== e.offsetWidth), n.removeChild(i), t) : void 0
            }
        }();
        var te, ee, ne = /^margin/, ie = new RegExp("^(" + St + ")(?!px)[a-z%]+$", "i"), re = /^(top|right|bottom|left)$/;
        t.getComputedStyle ? (te = function (e) {
            return e.ownerDocument.defaultView.opener ? e.ownerDocument.defaultView.getComputedStyle(e, null) : t.getComputedStyle(e, null)
        }, ee = function (t, e, n) {
            var i, r, o, a, s = t.style;
            return n = n || te(t), a = n ? n.getPropertyValue(e) || n[e] : void 0, n && ("" !== a || rt.contains(t.ownerDocument, t) || (a = rt.style(t, e)), ie.test(a) && ne.test(e) && (i = s.width, r = s.minWidth, o = s.maxWidth, s.minWidth = s.maxWidth = s.width = a, a = n.width, s.width = i, s.minWidth = r, s.maxWidth = o)), void 0 === a ? a : a + ""
        }) : ht.documentElement.currentStyle && (te = function (t) {
            return t.currentStyle
        }, ee = function (t, e, n) {
            var i, r, o, a, s = t.style;
            return n = n || te(t), a = n ? n[e] : void 0, null == a && s && s[e] && (a = s[e]), ie.test(a) && !re.test(e) && (i = s.left, r = t.runtimeStyle, o = r && r.left, o && (r.left = t.currentStyle.left), s.left = "fontSize" === e ? "1em" : a, a = s.pixelLeft + "px", s.left = i, o && (r.left = o)), void 0 === a ? a : a + "" || "auto"
        }), !function () {
            function e() {
                var e, n, i, r;
                n = ht.getElementsByTagName("body")[0], n && n.style && (e = ht.createElement("div"), i = ht.createElement("div"), i.style.cssText = "position:absolute;border:0;width:0;height:0;top:0;left:-9999px", n.appendChild(i).appendChild(e), e.style.cssText = "-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;margin-top:1%;top:1%;border:1px;padding:1px;width:4px;position:absolute", o = a = !1, l = !0, t.getComputedStyle && (o = "1%" !== (t.getComputedStyle(e, null) || {}).top, a = "4px" === (t.getComputedStyle(e, null) || {width: "4px"}).width, r = e.appendChild(ht.createElement("div")), r.style.cssText = e.style.cssText = "-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;margin:0;border:0;padding:0", r.style.marginRight = r.style.width = "0", e.style.width = "1px", l = !parseFloat((t.getComputedStyle(r, null) || {}).marginRight), e.removeChild(r)), e.innerHTML = "<table><tr><td></td><td>t</td></tr></table>", r = e.getElementsByTagName("td"), r[0].style.cssText = "margin:0;border:0;padding:0;display:none", s = 0 === r[0].offsetHeight, s && (r[0].style.display = "", r[1].style.display = "none", s = 0 === r[0].offsetHeight), n.removeChild(i))
            }

            var n, i, r, o, a, s, l;
            n = ht.createElement("div"), n.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", r = n.getElementsByTagName("a")[0], (i = r && r.style) && (i.cssText = "float:left;opacity:.5", nt.opacity = "0.5" === i.opacity, nt.cssFloat = !!i.cssFloat, n.style.backgroundClip = "content-box", n.cloneNode(!0).style.backgroundClip = "", nt.clearCloneStyle = "content-box" === n.style.backgroundClip, nt.boxSizing = "" === i.boxSizing || "" === i.MozBoxSizing || "" === i.WebkitBoxSizing, rt.extend(nt, {
                reliableHiddenOffsets: function () {
                    return null == s && e(), s
                }, boxSizingReliable: function () {
                    return null == a && e(), a
                }, pixelPosition: function () {
                    return null == o && e(), o
                }, reliableMarginRight: function () {
                    return null == l && e(), l
                }
            }))
        }(), rt.swap = function (t, e, n, i) {
            var r, o, a = {};
            for (o in e)a[o] = t.style[o], t.style[o] = e[o];
            r = n.apply(t, i || []);
            for (o in e)t.style[o] = a[o];
            return r
        };
        var oe = /alpha\([^)]*\)/i, ae = /opacity\s*=\s*([^)]*)/, se = /^(none|table(?!-c[ea]).+)/, le = new RegExp("^(" + St + ")(.*)$", "i"), ue = new RegExp("^([+-])=(" + St + ")", "i"), ce = {
            position: "absolute",
            visibility: "hidden",
            display: "block"
        }, de = {letterSpacing: "0", fontWeight: "400"}, fe = ["Webkit", "O", "Moz", "ms"];
        rt.extend({
            cssHooks: {
                opacity: {
                    get: function (t, e) {
                        if (e) {
                            var n = ee(t, "opacity");
                            return "" === n ? "1" : n
                        }
                    }
                }
            },
            cssNumber: {
                columnCount: !0,
                fillOpacity: !0,
                flexGrow: !0,
                flexShrink: !0,
                fontWeight: !0,
                lineHeight: !0,
                opacity: !0,
                order: !0,
                orphans: !0,
                widows: !0,
                zIndex: !0,
                zoom: !0
            },
            cssProps: {"float": nt.cssFloat ? "cssFloat" : "styleFloat"},
            style: function (t, e, n, i) {
                if (t && 3 !== t.nodeType && 8 !== t.nodeType && t.style) {
                    var r, o, a, s = rt.camelCase(e), l = t.style;
                    if (e = rt.cssProps[s] || (rt.cssProps[s] = N(l, s)), a = rt.cssHooks[e] || rt.cssHooks[s], void 0 === n)return a && "get" in a && void 0 !== (r = a.get(t, !1, i)) ? r : l[e];
                    if (o = typeof n, "string" === o && (r = ue.exec(n)) && (n = (r[1] + 1) * r[2] + parseFloat(rt.css(t, e)), o = "number"), null != n && n === n && ("number" !== o || rt.cssNumber[s] || (n += "px"), nt.clearCloneStyle || "" !== n || 0 !== e.indexOf("background") || (l[e] = "inherit"), !(a && "set" in a && void 0 === (n = a.set(t, n, i)))))try {
                        l[e] = n
                    } catch (u) {
                    }
                }
            },
            css: function (t, e, n, i) {
                var r, o, a, s = rt.camelCase(e);
                return e = rt.cssProps[s] || (rt.cssProps[s] = N(t.style, s)), a = rt.cssHooks[e] || rt.cssHooks[s], a && "get" in a && (o = a.get(t, !0, n)), void 0 === o && (o = ee(t, e, i)), "normal" === o && e in de && (o = de[e]), "" === n || n ? (r = parseFloat(o), n === !0 || rt.isNumeric(r) ? r || 0 : o) : o
            }
        }), rt.each(["height", "width"], function (t, e) {
            rt.cssHooks[e] = {
                get: function (t, n, i) {
                    return n ? se.test(rt.css(t, "display")) && 0 === t.offsetWidth ? rt.swap(t, ce, function () {
                        return j(t, e, i)
                    }) : j(t, e, i) : void 0
                }, set: function (t, n, i) {
                    var r = i && te(t);
                    return $(t, n, i ? D(t, e, i, nt.boxSizing && "border-box" === rt.css(t, "boxSizing", !1, r), r) : 0)
                }
            }
        }), nt.opacity || (rt.cssHooks.opacity = {
            get: function (t, e) {
                return ae.test((e && t.currentStyle ? t.currentStyle.filter : t.style.filter) || "") ? .01 * parseFloat(RegExp.$1) + "" : e ? "1" : ""
            }, set: function (t, e) {
                var n = t.style, i = t.currentStyle, r = rt.isNumeric(e) ? "alpha(opacity=" + 100 * e + ")" : "", o = i && i.filter || n.filter || "";
                n.zoom = 1, (e >= 1 || "" === e) && "" === rt.trim(o.replace(oe, "")) && n.removeAttribute && (n.removeAttribute("filter"), "" === e || i && !i.filter) || (n.filter = oe.test(o) ? o.replace(oe, r) : o + " " + r)
            }
        }), rt.cssHooks.marginRight = S(nt.reliableMarginRight, function (t, e) {
            return e ? rt.swap(t, {display: "inline-block"}, ee, [t, "marginRight"]) : void 0
        }), rt.each({margin: "", padding: "", border: "Width"}, function (t, e) {
            rt.cssHooks[t + e] = {
                expand: function (n) {
                    for (var i = 0, r = {}, o = "string" == typeof n ? n.split(" ") : [n]; 4 > i; i++)r[t + Nt[i] + e] = o[i] || o[i - 2] || o[0];
                    return r
                }
            }, ne.test(t) || (rt.cssHooks[t + e].set = $)
        }), rt.fn.extend({
            css: function (t, e) {
                return $t(this, function (t, e, n) {
                    var i, r, o = {}, a = 0;
                    if (rt.isArray(e)) {
                        for (i = te(t), r = e.length; r > a; a++)o[e[a]] = rt.css(t, e[a], !1, i);
                        return o
                    }
                    return void 0 !== n ? rt.style(t, e, n) : rt.css(t, e)
                }, t, e, arguments.length > 1)
            }, show: function () {
                return A(this, !0)
            }, hide: function () {
                return A(this)
            }, toggle: function (t) {
                return "boolean" == typeof t ? t ? this.show() : this.hide() : this.each(function () {
                    At(this) ? rt(this).show() : rt(this).hide()
                })
            }
        }), rt.Tween = _, _.prototype = {
            constructor: _, init: function (t, e, n, i, r, o) {
                this.elem = t, this.prop = n, this.easing = r || "swing", this.options = e, this.start = this.now = this.cur(), this.end = i, this.unit = o || (rt.cssNumber[n] ? "" : "px")
            }, cur: function () {
                var t = _.propHooks[this.prop];
                return t && t.get ? t.get(this) : _.propHooks._default.get(this)
            }, run: function (t) {
                var e, n = _.propHooks[this.prop];
                return this.pos = e = this.options.duration ? rt.easing[this.easing](t, this.options.duration * t, 0, 1, this.options.duration) : t, this.now = (this.end - this.start) * e + this.start, this.options.step && this.options.step.call(this.elem, this.now, this), n && n.set ? n.set(this) : _.propHooks._default.set(this), this
            }
        }, _.prototype.init.prototype = _.prototype, _.propHooks = {
            _default: {
                get: function (t) {
                    var e;
                    return null == t.elem[t.prop] || t.elem.style && null != t.elem.style[t.prop] ? (e = rt.css(t.elem, t.prop, ""), e && "auto" !== e ? e : 0) : t.elem[t.prop]
                }, set: function (t) {
                    rt.fx.step[t.prop] ? rt.fx.step[t.prop](t) : t.elem.style && (null != t.elem.style[rt.cssProps[t.prop]] || rt.cssHooks[t.prop]) ? rt.style(t.elem, t.prop, t.now + t.unit) : t.elem[t.prop] = t.now
                }
            }
        }, _.propHooks.scrollTop = _.propHooks.scrollLeft = {
            set: function (t) {
                t.elem.nodeType && t.elem.parentNode && (t.elem[t.prop] = t.now)
            }
        }, rt.easing = {
            linear: function (t) {
                return t
            }, swing: function (t) {
                return .5 - Math.cos(t * Math.PI) / 2
            }
        }, rt.fx = _.prototype.init, rt.fx.step = {};
        var pe, he, me = /^(?:toggle|show|hide)$/, ge = new RegExp("^(?:([+-])=|)(" + St + ")([a-z%]*)$", "i"), ve = /queueHooks$/, ye = [P], be = {
            "*": [function (t, e) {
                var n = this.createTween(t, e), i = n.cur(), r = ge.exec(e), o = r && r[3] || (rt.cssNumber[t] ? "" : "px"), a = (rt.cssNumber[t] || "px" !== o && +i) && ge.exec(rt.css(n.elem, t)), s = 1, l = 20;
                if (a && a[3] !== o) {
                    o = o || a[3], r = r || [], a = +i || 1;
                    do s = s || ".5", a /= s, rt.style(n.elem, t, a + o); while (s !== (s = n.cur() / i) && 1 !== s && --l)
                }
                return r && (a = n.start = +a || +i || 0, n.unit = o, n.end = r[1] ? a + (r[1] + 1) * r[2] : +r[2]), n
            }]
        };
        rt.Animation = rt.extend(H, {
            tweener: function (t, e) {
                rt.isFunction(t) ? (e = t, t = ["*"]) : t = t.split(" ");
                for (var n, i = 0, r = t.length; r > i; i++)n = t[i], be[n] = be[n] || [], be[n].unshift(e)
            }, prefilter: function (t, e) {
                e ? ye.unshift(t) : ye.push(t)
            }
        }), rt.speed = function (t, e, n) {
            var i = t && "object" == typeof t ? rt.extend({}, t) : {
                complete: n || !n && e || rt.isFunction(t) && t,
                duration: t,
                easing: n && e || e && !rt.isFunction(e) && e
            };
            return i.duration = rt.fx.off ? 0 : "number" == typeof i.duration ? i.duration : i.duration in rt.fx.speeds ? rt.fx.speeds[i.duration] : rt.fx.speeds._default, (null == i.queue || i.queue === !0) && (i.queue = "fx"), i.old = i.complete, i.complete = function () {
                rt.isFunction(i.old) && i.old.call(this), i.queue && rt.dequeue(this, i.queue)
            }, i
        }, rt.fn.extend({
            fadeTo: function (t, e, n, i) {
                return this.filter(At).css("opacity", 0).show().end().animate({opacity: e}, t, n, i)
            }, animate: function (t, e, n, i) {
                var r = rt.isEmptyObject(t), o = rt.speed(e, n, i), a = function () {
                    var e = H(this, rt.extend({}, t), o);
                    (r || rt._data(this, "finish")) && e.stop(!0)
                };
                return a.finish = a, r || o.queue === !1 ? this.each(a) : this.queue(o.queue, a)
            }, stop: function (t, e, n) {
                var i = function (t) {
                    var e = t.stop;
                    delete t.stop, e(n)
                };
                return "string" != typeof t && (n = e, e = t, t = void 0), e && t !== !1 && this.queue(t || "fx", []), this.each(function () {
                    var e = !0, r = null != t && t + "queueHooks", o = rt.timers, a = rt._data(this);
                    if (r)a[r] && a[r].stop && i(a[r]); else for (r in a)a[r] && a[r].stop && ve.test(r) && i(a[r]);
                    for (r = o.length; r--;)o[r].elem !== this || null != t && o[r].queue !== t || (o[r].anim.stop(n), e = !1, o.splice(r, 1));
                    (e || !n) && rt.dequeue(this, t)
                })
            }, finish: function (t) {
                return t !== !1 && (t = t || "fx"), this.each(function () {
                    var e, n = rt._data(this), i = n[t + "queue"], r = n[t + "queueHooks"], o = rt.timers, a = i ? i.length : 0;
                    for (n.finish = !0, rt.queue(this, t, []), r && r.stop && r.stop.call(this, !0), e = o.length; e--;)o[e].elem === this && o[e].queue === t && (o[e].anim.stop(!0), o.splice(e, 1));
                    for (e = 0; a > e; e++)i[e] && i[e].finish && i[e].finish.call(this);
                    delete n.finish
                })
            }
        }), rt.each(["toggle", "show", "hide"], function (t, e) {
            var n = rt.fn[e];
            rt.fn[e] = function (t, i, r) {
                return null == t || "boolean" == typeof t ? n.apply(this, arguments) : this.animate(O(e, !0), t, i, r)
            }
        }), rt.each({
            slideDown: O("show"),
            slideUp: O("hide"),
            slideToggle: O("toggle"),
            fadeIn: {opacity: "show"},
            fadeOut: {opacity: "hide"},
            fadeToggle: {opacity: "toggle"}
        }, function (t, e) {
            rt.fn[t] = function (t, n, i) {
                return this.animate(e, t, n, i)
            }
        }), rt.timers = [], rt.fx.tick = function () {
            var t, e = rt.timers, n = 0;
            for (pe = rt.now(); n < e.length; n++)t = e[n], t() || e[n] !== t || e.splice(n--, 1);
            e.length || rt.fx.stop(), pe = void 0
        }, rt.fx.timer = function (t) {
            rt.timers.push(t), t() ? rt.fx.start() : rt.timers.pop()
        }, rt.fx.interval = 13, rt.fx.start = function () {
            he || (he = setInterval(rt.fx.tick, rt.fx.interval))
        }, rt.fx.stop = function () {
            clearInterval(he), he = null
        }, rt.fx.speeds = {slow: 600, fast: 200, _default: 400}, rt.fn.delay = function (t, e) {
            return t = rt.fx ? rt.fx.speeds[t] || t : t, e = e || "fx", this.queue(e, function (e, n) {
                var i = setTimeout(e, t);
                n.stop = function () {
                    clearTimeout(i)
                }
            })
        }, function () {
            var t, e, n, i, r;
            e = ht.createElement("div"), e.setAttribute("className", "t"), e.innerHTML = "  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>", i = e.getElementsByTagName("a")[0], n = ht.createElement("select"), r = n.appendChild(ht.createElement("option")), t = e.getElementsByTagName("input")[0], i.style.cssText = "top:1px", nt.getSetAttribute = "t" !== e.className, nt.style = /top/.test(i.getAttribute("style")), nt.hrefNormalized = "/a" === i.getAttribute("href"), nt.checkOn = !!t.value, nt.optSelected = r.selected, nt.enctype = !!ht.createElement("form").enctype, n.disabled = !0, nt.optDisabled = !r.disabled, t = ht.createElement("input"), t.setAttribute("value", ""), nt.input = "" === t.getAttribute("value"), t.value = "t", t.setAttribute("type", "radio"), nt.radioValue = "t" === t.value
        }();
        var xe = /\r/g;
        rt.fn.extend({
            val: function (t) {
                var e, n, i, r = this[0];
                return arguments.length ? (i = rt.isFunction(t), this.each(function (n) {
                    var r;
                    1 === this.nodeType && (r = i ? t.call(this, n, rt(this).val()) : t, null == r ? r = "" : "number" == typeof r ? r += "" : rt.isArray(r) && (r = rt.map(r, function (t) {
                        return null == t ? "" : t + ""
                    })), e = rt.valHooks[this.type] || rt.valHooks[this.nodeName.toLowerCase()], e && "set" in e && void 0 !== e.set(this, r, "value") || (this.value = r))
                })) : r ? (e = rt.valHooks[r.type] || rt.valHooks[r.nodeName.toLowerCase()], e && "get" in e && void 0 !== (n = e.get(r, "value")) ? n : (n = r.value, "string" == typeof n ? n.replace(xe, "") : null == n ? "" : n)) : void 0
            }
        }), rt.extend({
            valHooks: {
                option: {
                    get: function (t) {
                        var e = rt.find.attr(t, "value");
                        return null != e ? e : rt.trim(rt.text(t))
                    }
                }, select: {
                    get: function (t) {
                        for (var e, n, i = t.options, r = t.selectedIndex, o = "select-one" === t.type || 0 > r, a = o ? null : [], s = o ? r + 1 : i.length, l = 0 > r ? s : o ? r : 0; s > l; l++)if (n = i[l], !(!n.selected && l !== r || (nt.optDisabled ? n.disabled : null !== n.getAttribute("disabled")) || n.parentNode.disabled && rt.nodeName(n.parentNode, "optgroup"))) {
                            if (e = rt(n).val(), o)return e;
                            a.push(e)
                        }
                        return a
                    }, set: function (t, e) {
                        for (var n, i, r = t.options, o = rt.makeArray(e), a = r.length; a--;)if (i = r[a], rt.inArray(rt.valHooks.option.get(i), o) >= 0)try {
                            i.selected = n = !0
                        } catch (s) {
                            i.scrollHeight
                        } else i.selected = !1;
                        return n || (t.selectedIndex = -1), r
                    }
                }
            }
        }), rt.each(["radio", "checkbox"], function () {
            rt.valHooks[this] = {
                set: function (t, e) {
                    return rt.isArray(e) ? t.checked = rt.inArray(rt(t).val(), e) >= 0 : void 0
                }
            }, nt.checkOn || (rt.valHooks[this].get = function (t) {
                return null === t.getAttribute("value") ? "on" : t.value
            })
        });
        var we, Te, Ce = rt.expr.attrHandle, ke = /^(?:checked|selected)$/i, Ee = nt.getSetAttribute, Se = nt.input;
        rt.fn.extend({
            attr: function (t, e) {
                return $t(this, rt.attr, t, e, arguments.length > 1)
            }, removeAttr: function (t) {
                return this.each(function () {
                    rt.removeAttr(this, t)
                })
            }
        }), rt.extend({
            attr: function (t, e, n) {
                var i, r, o = t.nodeType;
                return t && 3 !== o && 8 !== o && 2 !== o ? typeof t.getAttribute === Ct ? rt.prop(t, e, n) : (1 === o && rt.isXMLDoc(t) || (e = e.toLowerCase(), i = rt.attrHooks[e] || (rt.expr.match.bool.test(e) ? Te : we)), void 0 === n ? i && "get" in i && null !== (r = i.get(t, e)) ? r : (r = rt.find.attr(t, e), null == r ? void 0 : r) : null !== n ? i && "set" in i && void 0 !== (r = i.set(t, n, e)) ? r : (t.setAttribute(e, n + ""), n) : void rt.removeAttr(t, e)) : void 0
            }, removeAttr: function (t, e) {
                var n, i, r = 0, o = e && e.match(bt);
                if (o && 1 === t.nodeType)for (; n = o[r++];)i = rt.propFix[n] || n, rt.expr.match.bool.test(n) ? Se && Ee || !ke.test(n) ? t[i] = !1 : t[rt.camelCase("default-" + n)] = t[i] = !1 : rt.attr(t, n, ""), t.removeAttribute(Ee ? n : i)
            }, attrHooks: {
                type: {
                    set: function (t, e) {
                        if (!nt.radioValue && "radio" === e && rt.nodeName(t, "input")) {
                            var n = t.value;
                            return t.setAttribute("type", e), n && (t.value = n), e
                        }
                    }
                }
            }
        }), Te = {
            set: function (t, e, n) {
                return e === !1 ? rt.removeAttr(t, n) : Se && Ee || !ke.test(n) ? t.setAttribute(!Ee && rt.propFix[n] || n, n) : t[rt.camelCase("default-" + n)] = t[n] = !0, n
            }
        }, rt.each(rt.expr.match.bool.source.match(/\w+/g), function (t, e) {
            var n = Ce[e] || rt.find.attr;
            Ce[e] = Se && Ee || !ke.test(e) ? function (t, e, i) {
                var r, o;
                return i || (o = Ce[e], Ce[e] = r, r = null != n(t, e, i) ? e.toLowerCase() : null, Ce[e] = o), r
            } : function (t, e, n) {
                return n ? void 0 : t[rt.camelCase("default-" + e)] ? e.toLowerCase() : null
            }
        }), Se && Ee || (rt.attrHooks.value = {
            set: function (t, e, n) {
                return rt.nodeName(t, "input") ? void(t.defaultValue = e) : we && we.set(t, e, n)
            }
        }), Ee || (we = {
            set: function (t, e, n) {
                var i = t.getAttributeNode(n);
                return i || t.setAttributeNode(i = t.ownerDocument.createAttribute(n)), i.value = e += "", "value" === n || e === t.getAttribute(n) ? e : void 0
            }
        }, Ce.id = Ce.name = Ce.coords = function (t, e, n) {
            var i;
            return n ? void 0 : (i = t.getAttributeNode(e)) && "" !== i.value ? i.value : null
        }, rt.valHooks.button = {
            get: function (t, e) {
                var n = t.getAttributeNode(e);
                return n && n.specified ? n.value : void 0
            }, set: we.set
        }, rt.attrHooks.contenteditable = {
            set: function (t, e, n) {
                we.set(t, "" === e ? !1 : e, n)
            }
        }, rt.each(["width", "height"], function (t, e) {
            rt.attrHooks[e] = {
                set: function (t, n) {
                    return "" === n ? (t.setAttribute(e, "auto"), n) : void 0
                }
            }
        })), nt.style || (rt.attrHooks.style = {
            get: function (t) {
                return t.style.cssText || void 0
            }, set: function (t, e) {
                return t.style.cssText = e + ""
            }
        });
        var Ne = /^(?:input|select|textarea|button|object)$/i, Ae = /^(?:a|area)$/i;
        rt.fn.extend({
            prop: function (t, e) {
                return $t(this, rt.prop, t, e, arguments.length > 1)
            }, removeProp: function (t) {
                return t = rt.propFix[t] || t, this.each(function () {
                    try {
                        this[t] = void 0, delete this[t]
                    } catch (e) {
                    }
                })
            }
        }), rt.extend({
            propFix: {"for": "htmlFor", "class": "className"}, prop: function (t, e, n) {
                var i, r, o, a = t.nodeType;
                return t && 3 !== a && 8 !== a && 2 !== a ? (o = 1 !== a || !rt.isXMLDoc(t), o && (e = rt.propFix[e] || e, r = rt.propHooks[e]), void 0 !== n ? r && "set" in r && void 0 !== (i = r.set(t, n, e)) ? i : t[e] = n : r && "get" in r && null !== (i = r.get(t, e)) ? i : t[e]) : void 0
            }, propHooks: {
                tabIndex: {
                    get: function (t) {
                        var e = rt.find.attr(t, "tabindex");
                        return e ? parseInt(e, 10) : Ne.test(t.nodeName) || Ae.test(t.nodeName) && t.href ? 0 : -1
                    }
                }
            }
        }), nt.hrefNormalized || rt.each(["href", "src"], function (t, e) {
            rt.propHooks[e] = {
                get: function (t) {
                    return t.getAttribute(e, 4)
                }
            }
        }), nt.optSelected || (rt.propHooks.selected = {
            get: function (t) {
                var e = t.parentNode;
                return e && (e.selectedIndex, e.parentNode && e.parentNode.selectedIndex), null
            }
        }), rt.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function () {
            rt.propFix[this.toLowerCase()] = this
        }), nt.enctype || (rt.propFix.enctype = "encoding");
        var $e = /[\t\r\n\f]/g;
        rt.fn.extend({
            addClass: function (t) {
                var e, n, i, r, o, a, s = 0, l = this.length, u = "string" == typeof t && t;
                if (rt.isFunction(t))return this.each(function (e) {
                    rt(this).addClass(t.call(this, e, this.className))
                });
                if (u)for (e = (t || "").match(bt) || []; l > s; s++)if (n = this[s], i = 1 === n.nodeType && (n.className ? (" " + n.className + " ").replace($e, " ") : " ")) {
                    for (o = 0; r = e[o++];)i.indexOf(" " + r + " ") < 0 && (i += r + " ");
                    a = rt.trim(i), n.className !== a && (n.className = a)
                }
                return this
            }, removeClass: function (t) {
                var e, n, i, r, o, a, s = 0, l = this.length, u = 0 === arguments.length || "string" == typeof t && t;
                if (rt.isFunction(t))return this.each(function (e) {
                    rt(this).removeClass(t.call(this, e, this.className))
                });
                if (u)for (e = (t || "").match(bt) || []; l > s; s++)if (n = this[s], i = 1 === n.nodeType && (n.className ? (" " + n.className + " ").replace($e, " ") : "")) {
                    for (o = 0; r = e[o++];)for (; i.indexOf(" " + r + " ") >= 0;)i = i.replace(" " + r + " ", " ");
                    a = t ? rt.trim(i) : "", n.className !== a && (n.className = a)
                }
                return this
            }, toggleClass: function (t, e) {
                var n = typeof t;
                return "boolean" == typeof e && "string" === n ? e ? this.addClass(t) : this.removeClass(t) : this.each(rt.isFunction(t) ? function (n) {
                    rt(this).toggleClass(t.call(this, n, this.className, e), e)
                } : function () {
                    if ("string" === n)for (var e, i = 0, r = rt(this), o = t.match(bt) || []; e = o[i++];)r.hasClass(e) ? r.removeClass(e) : r.addClass(e); else(n === Ct || "boolean" === n) && (this.className && rt._data(this, "__className__", this.className), this.className = this.className || t === !1 ? "" : rt._data(this, "__className__") || "")
                })
            }, hasClass: function (t) {
                for (var e = " " + t + " ", n = 0, i = this.length; i > n; n++)if (1 === this[n].nodeType && (" " + this[n].className + " ").replace($e, " ").indexOf(e) >= 0)return !0;
                return !1
            }
        }), rt.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "), function (t, e) {
            rt.fn[e] = function (t, n) {
                return arguments.length > 0 ? this.on(e, null, t, n) : this.trigger(e)
            }
        }), rt.fn.extend({
            hover: function (t, e) {
                return this.mouseenter(t).mouseleave(e || t)
            }, bind: function (t, e, n) {
                return this.on(t, null, e, n)
            }, unbind: function (t, e) {
                return this.off(t, null, e)
            }, delegate: function (t, e, n, i) {
                return this.on(e, t, n, i)
            }, undelegate: function (t, e, n) {
                return 1 === arguments.length ? this.off(t, "**") : this.off(e, t || "**", n)
            }
        });
        var De = rt.now(), je = /\?/, _e = /(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;
        rt.parseJSON = function (e) {
            if (t.JSON && t.JSON.parse)return t.JSON.parse(e + "");
            var n, i = null, r = rt.trim(e + "");
            return r && !rt.trim(r.replace(_e, function (t, e, r, o) {
                return n && e && (i = 0), 0 === i ? t : (n = r || e, i += !o - !r, "")
            })) ? Function("return " + r)() : rt.error("Invalid JSON: " + e)
        }, rt.parseXML = function (e) {
            var n, i;
            if (!e || "string" != typeof e)return null;
            try {
                t.DOMParser ? (i = new DOMParser, n = i.parseFromString(e, "text/xml")) : (n = new ActiveXObject("Microsoft.XMLDOM"), n.async = "false", n.loadXML(e))
            } catch (r) {
                n = void 0
            }
            return n && n.documentElement && !n.getElementsByTagName("parsererror").length || rt.error("Invalid XML: " + e), n
        };
        var Le, Oe, Ie = /#.*$/, Pe = /([?&])_=[^&]*/, qe = /^(.*?):[ \t]*([^\r\n]*)\r?$/gm, He = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/, Be = /^(?:GET|HEAD)$/, Re = /^\/\//, Me = /^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/, Fe = {}, We = {}, Ve = "*/".concat("*");
        try {
            Oe = location.href
        } catch (ze) {
            Oe = ht.createElement("a"), Oe.href = "", Oe = Oe.href
        }
        Le = Me.exec(Oe.toLowerCase()) || [], rt.extend({
            active: 0,
            lastModified: {},
            etag: {},
            ajaxSettings: {
                url: Oe,
                type: "GET",
                isLocal: He.test(Le[1]),
                global: !0,
                processData: !0,
                async: !0,
                contentType: "application/x-www-form-urlencoded; charset=UTF-8",
                accepts: {
                    "*": Ve,
                    text: "text/plain",
                    html: "text/html",
                    xml: "application/xml, text/xml",
                    json: "application/json, text/javascript"
                },
                contents: {xml: /xml/, html: /html/, json: /json/},
                responseFields: {xml: "responseXML", text: "responseText", json: "responseJSON"},
                converters: {"* text": String, "text html": !0, "text json": rt.parseJSON, "text xml": rt.parseXML},
                flatOptions: {url: !0, context: !0}
            },
            ajaxSetup: function (t, e) {
                return e ? M(M(t, rt.ajaxSettings), e) : M(rt.ajaxSettings, t)
            },
            ajaxPrefilter: B(Fe),
            ajaxTransport: B(We),
            ajax: function (t, e) {
                function n(t, e, n, i) {
                    var r, c, v, y, x, T = e;
                    2 !== b && (b = 2, s && clearTimeout(s), u = void 0, a = i || "", w.readyState = t > 0 ? 4 : 0, r = t >= 200 && 300 > t || 304 === t, n && (y = F(d, w, n)), y = W(d, y, w, r), r ? (d.ifModified && (x = w.getResponseHeader("Last-Modified"), x && (rt.lastModified[o] = x), x = w.getResponseHeader("etag"), x && (rt.etag[o] = x)), 204 === t || "HEAD" === d.type ? T = "nocontent" : 304 === t ? T = "notmodified" : (T = y.state, c = y.data, v = y.error, r = !v)) : (v = T, (t || !T) && (T = "error", 0 > t && (t = 0))), w.status = t, w.statusText = (e || T) + "", r ? h.resolveWith(f, [c, T, w]) : h.rejectWith(f, [w, T, v]), w.statusCode(g), g = void 0, l && p.trigger(r ? "ajaxSuccess" : "ajaxError", [w, d, r ? c : v]), m.fireWith(f, [w, T]), l && (p.trigger("ajaxComplete", [w, d]), --rt.active || rt.event.trigger("ajaxStop")))
                }

                "object" == typeof t && (e = t, t = void 0), e = e || {};
                var i, r, o, a, s, l, u, c, d = rt.ajaxSetup({}, e), f = d.context || d, p = d.context && (f.nodeType || f.jquery) ? rt(f) : rt.event, h = rt.Deferred(), m = rt.Callbacks("once memory"), g = d.statusCode || {}, v = {}, y = {}, b = 0, x = "canceled", w = {
                    readyState: 0,
                    getResponseHeader: function (t) {
                        var e;
                        if (2 === b) {
                            if (!c)for (c = {}; e = qe.exec(a);)c[e[1].toLowerCase()] = e[2];
                            e = c[t.toLowerCase()]
                        }
                        return null == e ? null : e
                    },
                    getAllResponseHeaders: function () {
                        return 2 === b ? a : null
                    },
                    setRequestHeader: function (t, e) {
                        var n = t.toLowerCase();
                        return b || (t = y[n] = y[n] || t, v[t] = e), this
                    },
                    overrideMimeType: function (t) {
                        return b || (d.mimeType = t), this
                    },
                    statusCode: function (t) {
                        var e;
                        if (t)if (2 > b)for (e in t)g[e] = [g[e], t[e]]; else w.always(t[w.status]);
                        return this
                    },
                    abort: function (t) {
                        var e = t || x;
                        return u && u.abort(e), n(0, e), this
                    }
                };
                if (h.promise(w).complete = m.add, w.success = w.done, w.error = w.fail, d.url = ((t || d.url || Oe) + "").replace(Ie, "").replace(Re, Le[1] + "//"), d.type = e.method || e.type || d.method || d.type, d.dataTypes = rt.trim(d.dataType || "*").toLowerCase().match(bt) || [""], null == d.crossDomain && (i = Me.exec(d.url.toLowerCase()), d.crossDomain = !(!i || i[1] === Le[1] && i[2] === Le[2] && (i[3] || ("http:" === i[1] ? "80" : "443")) === (Le[3] || ("http:" === Le[1] ? "80" : "443")))), d.data && d.processData && "string" != typeof d.data && (d.data = rt.param(d.data, d.traditional)), R(Fe, d, e, w), 2 === b)return w;
                l = rt.event && d.global, l && 0 === rt.active++ && rt.event.trigger("ajaxStart"), d.type = d.type.toUpperCase(), d.hasContent = !Be.test(d.type), o = d.url, d.hasContent || (d.data && (o = d.url += (je.test(o) ? "&" : "?") + d.data, delete d.data), d.cache === !1 && (d.url = Pe.test(o) ? o.replace(Pe, "$1_=" + De++) : o + (je.test(o) ? "&" : "?") + "_=" + De++)), d.ifModified && (rt.lastModified[o] && w.setRequestHeader("If-Modified-Since", rt.lastModified[o]), rt.etag[o] && w.setRequestHeader("If-None-Match", rt.etag[o])), (d.data && d.hasContent && d.contentType !== !1 || e.contentType) && w.setRequestHeader("Content-Type", d.contentType), w.setRequestHeader("Accept", d.dataTypes[0] && d.accepts[d.dataTypes[0]] ? d.accepts[d.dataTypes[0]] + ("*" !== d.dataTypes[0] ? ", " + Ve + "; q=0.01" : "") : d.accepts["*"]);
                for (r in d.headers)w.setRequestHeader(r, d.headers[r]);
                if (d.beforeSend && (d.beforeSend.call(f, w, d) === !1 || 2 === b))return w.abort();
                x = "abort";
                for (r in{success: 1, error: 1, complete: 1})w[r](d[r]);
                if (u = R(We, d, e, w)) {
                    w.readyState = 1, l && p.trigger("ajaxSend", [w, d]), d.async && d.timeout > 0 && (s = setTimeout(function () {
                        w.abort("timeout")
                    }, d.timeout));
                    try {
                        b = 1, u.send(v, n)
                    } catch (T) {
                        if (!(2 > b))throw T;
                        n(-1, T)
                    }
                } else n(-1, "No Transport");
                return w
            },
            getJSON: function (t, e, n) {
                return rt.get(t, e, n, "json")
            },
            getScript: function (t, e) {
                return rt.get(t, void 0, e, "script")
            }
        }), rt.each(["get", "post"], function (t, e) {
            rt[e] = function (t, n, i, r) {
                return rt.isFunction(n) && (r = r || i, i = n, n = void 0), rt.ajax({
                    url: t,
                    type: e,
                    dataType: r,
                    data: n,
                    success: i
                })
            }
        }), rt._evalUrl = function (t) {
            return rt.ajax({url: t, type: "GET", dataType: "script", async: !1, global: !1, "throws": !0})
        }, rt.fn.extend({
            wrapAll: function (t) {
                if (rt.isFunction(t))return this.each(function (e) {
                    rt(this).wrapAll(t.call(this, e))
                });
                if (this[0]) {
                    var e = rt(t, this[0].ownerDocument).eq(0).clone(!0);
                    this[0].parentNode && e.insertBefore(this[0]), e.map(function () {
                        for (var t = this; t.firstChild && 1 === t.firstChild.nodeType;)t = t.firstChild;
                        return t
                    }).append(this)
                }
                return this
            }, wrapInner: function (t) {
                return this.each(rt.isFunction(t) ? function (e) {
                    rt(this).wrapInner(t.call(this, e))
                } : function () {
                    var e = rt(this), n = e.contents();
                    n.length ? n.wrapAll(t) : e.append(t)
                })
            }, wrap: function (t) {
                var e = rt.isFunction(t);
                return this.each(function (n) {
                    rt(this).wrapAll(e ? t.call(this, n) : t)
                })
            }, unwrap: function () {
                return this.parent().each(function () {
                    rt.nodeName(this, "body") || rt(this).replaceWith(this.childNodes)
                }).end()
            }
        }), rt.expr.filters.hidden = function (t) {
            return t.offsetWidth <= 0 && t.offsetHeight <= 0 || !nt.reliableHiddenOffsets() && "none" === (t.style && t.style.display || rt.css(t, "display"))
        }, rt.expr.filters.visible = function (t) {
            return !rt.expr.filters.hidden(t)
        };
        var Ue = /%20/g, Xe = /\[\]$/, Ge = /\r?\n/g, Ke = /^(?:submit|button|image|reset|file)$/i, Qe = /^(?:input|select|textarea|keygen)/i;
        rt.param = function (t, e) {
            var n, i = [], r = function (t, e) {
                e = rt.isFunction(e) ? e() : null == e ? "" : e, i[i.length] = encodeURIComponent(t) + "=" + encodeURIComponent(e)
            };
            if (void 0 === e && (e = rt.ajaxSettings && rt.ajaxSettings.traditional), rt.isArray(t) || t.jquery && !rt.isPlainObject(t))rt.each(t, function () {
                r(this.name, this.value)
            }); else for (n in t)V(n, t[n], e, r);
            return i.join("&").replace(Ue, "+")
        }, rt.fn.extend({
            serialize: function () {
                return rt.param(this.serializeArray())
            }, serializeArray: function () {
                return this.map(function () {
                    var t = rt.prop(this, "elements");
                    return t ? rt.makeArray(t) : this
                }).filter(function () {
                    var t = this.type;
                    return this.name && !rt(this).is(":disabled") && Qe.test(this.nodeName) && !Ke.test(t) && (this.checked || !Dt.test(t))
                }).map(function (t, e) {
                    var n = rt(this).val();
                    return null == n ? null : rt.isArray(n) ? rt.map(n, function (t) {
                        return {name: e.name, value: t.replace(Ge, "\r\n")}
                    }) : {name: e.name, value: n.replace(Ge, "\r\n")}
                }).get()
            }
        }), rt.ajaxSettings.xhr = void 0 !== t.ActiveXObject ? function () {
            return !this.isLocal && /^(get|post|head|put|delete|options)$/i.test(this.type) && z() || U()
        } : z;
        var Je = 0, Ye = {}, Ze = rt.ajaxSettings.xhr();
        t.attachEvent && t.attachEvent("onunload", function () {
            for (var t in Ye)Ye[t](void 0, !0)
        }), nt.cors = !!Ze && "withCredentials" in Ze, Ze = nt.ajax = !!Ze, Ze && rt.ajaxTransport(function (t) {
            if (!t.crossDomain || nt.cors) {
                var e;
                return {
                    send: function (n, i) {
                        var r, o = t.xhr(), a = ++Je;
                        if (o.open(t.type, t.url, t.async, t.username, t.password), t.xhrFields)for (r in t.xhrFields)o[r] = t.xhrFields[r];
                        t.mimeType && o.overrideMimeType && o.overrideMimeType(t.mimeType), t.crossDomain || n["X-Requested-With"] || (n["X-Requested-With"] = "XMLHttpRequest");
                        for (r in n)void 0 !== n[r] && o.setRequestHeader(r, n[r] + "");
                        o.send(t.hasContent && t.data || null), e = function (n, r) {
                            var s, l, u;
                            if (e && (r || 4 === o.readyState))if (delete Ye[a], e = void 0, o.onreadystatechange = rt.noop, r)4 !== o.readyState && o.abort(); else {
                                u = {}, s = o.status, "string" == typeof o.responseText && (u.text = o.responseText);
                                try {
                                    l = o.statusText
                                } catch (c) {
                                    l = ""
                                }
                                s || !t.isLocal || t.crossDomain ? 1223 === s && (s = 204) : s = u.text ? 200 : 404
                            }
                            u && i(s, l, u, o.getAllResponseHeaders())
                        }, t.async ? 4 === o.readyState ? setTimeout(e) : o.onreadystatechange = Ye[a] = e : e()
                    }, abort: function () {
                        e && e(void 0, !0)
                    }
                }
            }
        }), rt.ajaxSetup({
            accepts: {script: "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},
            contents: {script: /(?:java|ecma)script/},
            converters: {
                "text script": function (t) {
                    return rt.globalEval(t), t
                }
            }
        }), rt.ajaxPrefilter("script", function (t) {
            void 0 === t.cache && (t.cache = !1), t.crossDomain && (t.type = "GET", t.global = !1)
        }), rt.ajaxTransport("script", function (t) {
            if (t.crossDomain) {
                var e, n = ht.head || rt("head")[0] || ht.documentElement;
                return {
                    send: function (i, r) {
                        e = ht.createElement("script"), e.async = !0, t.scriptCharset && (e.charset = t.scriptCharset), e.src = t.url, e.onload = e.onreadystatechange = function (t, n) {
                            (n || !e.readyState || /loaded|complete/.test(e.readyState)) && (e.onload = e.onreadystatechange = null, e.parentNode && e.parentNode.removeChild(e), e = null, n || r(200, "success"))
                        }, n.insertBefore(e, n.firstChild)
                    }, abort: function () {
                        e && e.onload(void 0, !0)
                    }
                }
            }
        });
        var tn = [], en = /(=)\?(?=&|$)|\?\?/;
        rt.ajaxSetup({
            jsonp: "callback", jsonpCallback: function () {
                var t = tn.pop() || rt.expando + "_" + De++;
                return this[t] = !0, t
            }
        }), rt.ajaxPrefilter("json jsonp", function (e, n, i) {
            var r, o, a, s = e.jsonp !== !1 && (en.test(e.url) ? "url" : "string" == typeof e.data && !(e.contentType || "").indexOf("application/x-www-form-urlencoded") && en.test(e.data) && "data");
            return s || "jsonp" === e.dataTypes[0] ? (r = e.jsonpCallback = rt.isFunction(e.jsonpCallback) ? e.jsonpCallback() : e.jsonpCallback, s ? e[s] = e[s].replace(en, "$1" + r) : e.jsonp !== !1 && (e.url += (je.test(e.url) ? "&" : "?") + e.jsonp + "=" + r), e.converters["script json"] = function () {
                return a || rt.error(r + " was not called"), a[0]
            }, e.dataTypes[0] = "json", o = t[r], t[r] = function () {
                a = arguments
            }, i.always(function () {
                t[r] = o, e[r] && (e.jsonpCallback = n.jsonpCallback, tn.push(r)), a && rt.isFunction(o) && o(a[0]), a = o = void 0
            }), "script") : void 0
        }), rt.parseHTML = function (t, e, n) {
            if (!t || "string" != typeof t)return null;
            "boolean" == typeof e && (n = e, e = !1), e = e || ht;
            var i = dt.exec(t), r = !n && [];
            return i ? [e.createElement(i[1])] : (i = rt.buildFragment([t], e, r), r && r.length && rt(r).remove(), rt.merge([], i.childNodes))
        };
        var nn = rt.fn.load;
        rt.fn.load = function (t, e, n) {
            if ("string" != typeof t && nn)return nn.apply(this, arguments);
            var i, r, o, a = this, s = t.indexOf(" ");
            return s >= 0 && (i = rt.trim(t.slice(s, t.length)), t = t.slice(0, s)), rt.isFunction(e) ? (n = e, e = void 0) : e && "object" == typeof e && (o = "POST"), a.length > 0 && rt.ajax({
                url: t,
                type: o,
                dataType: "html",
                data: e
            }).done(function (t) {
                r = arguments, a.html(i ? rt("<div>").append(rt.parseHTML(t)).find(i) : t)
            }).complete(n && function (t, e) {
                    a.each(n, r || [t.responseText, e, t])
                }), this
        }, rt.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function (t, e) {
            rt.fn[e] = function (t) {
                return this.on(e, t)
            }
        }), rt.expr.filters.animated = function (t) {
            return rt.grep(rt.timers, function (e) {
                return t === e.elem
            }).length
        };
        var rn = t.document.documentElement;
        rt.offset = {
            setOffset: function (t, e, n) {
                var i, r, o, a, s, l, u, c = rt.css(t, "position"), d = rt(t), f = {};
                "static" === c && (t.style.position = "relative"), s = d.offset(), o = rt.css(t, "top"), l = rt.css(t, "left"), u = ("absolute" === c || "fixed" === c) && rt.inArray("auto", [o, l]) > -1, u ? (i = d.position(), a = i.top, r = i.left) : (a = parseFloat(o) || 0, r = parseFloat(l) || 0), rt.isFunction(e) && (e = e.call(t, n, s)), null != e.top && (f.top = e.top - s.top + a), null != e.left && (f.left = e.left - s.left + r), "using" in e ? e.using.call(t, f) : d.css(f)
            }
        }, rt.fn.extend({
            offset: function (t) {
                if (arguments.length)return void 0 === t ? this : this.each(function (e) {
                    rt.offset.setOffset(this, t, e)
                });
                var e, n, i = {top: 0, left: 0}, r = this[0], o = r && r.ownerDocument;
                return o ? (e = o.documentElement, rt.contains(e, r) ? (typeof r.getBoundingClientRect !== Ct && (i = r.getBoundingClientRect()), n = X(o), {
                    top: i.top + (n.pageYOffset || e.scrollTop) - (e.clientTop || 0),
                    left: i.left + (n.pageXOffset || e.scrollLeft) - (e.clientLeft || 0)
                }) : i) : void 0
            }, position: function () {
                if (this[0]) {
                    var t, e, n = {top: 0, left: 0}, i = this[0];
                    return "fixed" === rt.css(i, "position") ? e = i.getBoundingClientRect() : (t = this.offsetParent(), e = this.offset(), rt.nodeName(t[0], "html") || (n = t.offset()), n.top += rt.css(t[0], "borderTopWidth", !0), n.left += rt.css(t[0], "borderLeftWidth", !0)), {
                        top: e.top - n.top - rt.css(i, "marginTop", !0),
                        left: e.left - n.left - rt.css(i, "marginLeft", !0)
                    }
                }
            }, offsetParent: function () {
                return this.map(function () {
                    for (var t = this.offsetParent || rn; t && !rt.nodeName(t, "html") && "static" === rt.css(t, "position");)t = t.offsetParent;
                    return t || rn
                })
            }
        }), rt.each({scrollLeft: "pageXOffset", scrollTop: "pageYOffset"}, function (t, e) {
            var n = /Y/.test(e);
            rt.fn[t] = function (i) {
                return $t(this, function (t, i, r) {
                    var o = X(t);
                    return void 0 === r ? o ? e in o ? o[e] : o.document.documentElement[i] : t[i] : void(o ? o.scrollTo(n ? rt(o).scrollLeft() : r, n ? r : rt(o).scrollTop()) : t[i] = r)
                }, t, i, arguments.length, null)
            }
        }), rt.each(["top", "left"], function (t, e) {
            rt.cssHooks[e] = S(nt.pixelPosition, function (t, n) {
                return n ? (n = ee(t, e), ie.test(n) ? rt(t).position()[e] + "px" : n) : void 0
            })
        }), rt.each({Height: "height", Width: "width"}, function (t, e) {
            rt.each({padding: "inner" + t, content: e, "": "outer" + t}, function (n, i) {
                rt.fn[i] = function (i, r) {
                    var o = arguments.length && (n || "boolean" != typeof i), a = n || (i === !0 || r === !0 ? "margin" : "border");
                    return $t(this, function (e, n, i) {
                        var r;
                        return rt.isWindow(e) ? e.document.documentElement["client" + t] : 9 === e.nodeType ? (r = e.documentElement, Math.max(e.body["scroll" + t], r["scroll" + t], e.body["offset" + t], r["offset" + t], r["client" + t])) : void 0 === i ? rt.css(e, n, a) : rt.style(e, n, i, a)
                    }, e, o ? i : void 0, o, null)
                }
            })
        }), rt.fn.size = function () {
            return this.length
        }, rt.fn.andSelf = rt.fn.addBack, "function" == typeof define && define.amd && define("jquery", [], function () {
            return rt
        });
        var on = t.jQuery, an = t.$;
        return rt.noConflict = function (e) {
            return t.$ === rt && (t.$ = an), e && t.jQuery === rt && (t.jQuery = on), rt
        }, typeof e === Ct && (t.jQuery = t.$ = rt), rt
    })
}, mok["lib/bootstrap.min"] = function (t, e, n) {
    var i = t("lib/jquery.min");
    if ("undefined" == typeof i)throw new Error("Bootstrap's JavaScript requires jQuery");
    +function (t) {
        var e = t.fn.jquery.split(" ")[0].split(".");
        if (e[0] < 2 && e[1] < 9 || 1 == e[0] && 9 == e[1] && e[2] < 1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")
    }(i), +function (t) {
        function e() {
            var t = document.createElement("bootstrap"), e = {
                WebkitTransition: "webkitTransitionEnd",
                MozTransition: "transitionend",
                OTransition: "oTransitionEnd otransitionend",
                transition: "transitionend"
            };
            for (var n in e)if (void 0 !== t.style[n])return {end: e[n]};
            return !1
        }

        t.fn.emulateTransitionEnd = function (e) {
            var n = !1, i = this;
            t(this).one("bsTransitionEnd", function () {
                n = !0
            });
            var r = function () {
                n || t(i).trigger(t.support.transition.end)
            };
            return setTimeout(r, e), this
        }, t(function () {
            t.support.transition = e(), t.support.transition && (t.event.special.bsTransitionEnd = {
                bindType: t.support.transition.end,
                delegateType: t.support.transition.end,
                handle: function (e) {
                    return t(e.target).is(this) ? e.handleObj.handler.apply(this, arguments) : void 0
                }
            })
        })
    }(i), +function (t) {
        function e(e) {
            return this.each(function () {
                var n = t(this), r = n.data("bs.alert");
                r || n.data("bs.alert", r = new i(this)), "string" == typeof e && r[e].call(n)
            })
        }

        var n = '[data-dismiss="alert"]', i = function (e) {
            t(e).on("click", n, this.close)
        };
        i.VERSION = "3.3.5", i.TRANSITION_DURATION = 150, i.prototype.close = function (e) {
            function n() {
                a.detach().trigger("closed.bs.alert").remove()
            }

            var r = t(this), o = r.attr("data-target");
            o || (o = r.attr("href"), o = o && o.replace(/.*(?=#[^\s]*$)/, ""));
            var a = t(o);
            e && e.preventDefault(), a.length || (a = r.closest(".alert")), a.trigger(e = t.Event("close.bs.alert")), e.isDefaultPrevented() || (a.removeClass("in"), t.support.transition && a.hasClass("fade") ? a.one("bsTransitionEnd", n).emulateTransitionEnd(i.TRANSITION_DURATION) : n())
        };
        var r = t.fn.alert;
        t.fn.alert = e, t.fn.alert.Constructor = i, t.fn.alert.noConflict = function () {
            return t.fn.alert = r, this
        }, t(document).on("click.bs.alert.data-api", n, i.prototype.close)
    }(i), +function (t) {
        function e(e) {
            return this.each(function () {
                var i = t(this), r = i.data("bs.button"), o = "object" == typeof e && e;
                r || i.data("bs.button", r = new n(this, o)), "toggle" == e ? r.toggle() : e && r.setState(e)
            })
        }

        var n = function (e, i) {
            this.$element = t(e), this.options = t.extend({}, n.DEFAULTS, i), this.isLoading = !1
        };
        n.VERSION = "3.3.5", n.DEFAULTS = {loadingText: "loading..."}, n.prototype.setState = function (e) {
            var n = "disabled", i = this.$element, r = i.is("input") ? "val" : "html", o = i.data();
            e += "Text", null == o.resetText && i.data("resetText", i[r]()), setTimeout(t.proxy(function () {
                i[r](null == o[e] ? this.options[e] : o[e]), "loadingText" == e ? (this.isLoading = !0, i.addClass(n).attr(n, n)) : this.isLoading && (this.isLoading = !1, i.removeClass(n).removeAttr(n))
            }, this), 0)
        }, n.prototype.toggle = function () {
            var t = !0, e = this.$element.closest('[data-toggle="buttons"]');
            if (e.length) {
                var n = this.$element.find("input");
                "radio" == n.prop("type") ? (n.prop("checked") && (t = !1), e.find(".active").removeClass("active"), this.$element.addClass("active")) : "checkbox" == n.prop("type") && (n.prop("checked") !== this.$element.hasClass("active") && (t = !1), this.$element.toggleClass("active")), n.prop("checked", this.$element.hasClass("active")), t && n.trigger("change")
            } else this.$element.attr("aria-pressed", !this.$element.hasClass("active")), this.$element.toggleClass("active")
        };
        var i = t.fn.button;
        t.fn.button = e, t.fn.button.Constructor = n, t.fn.button.noConflict = function () {
            return t.fn.button = i, this
        }, t(document).on("click.bs.button.data-api", '[data-toggle^="button"]', function (n) {
            var i = t(n.target);
            i.hasClass("btn") || (i = i.closest(".btn")), e.call(i, "toggle"), t(n.target).is('input[type="radio"]') || t(n.target).is('input[type="checkbox"]') || n.preventDefault()
        }).on("focus.bs.button.data-api blur.bs.button.data-api", '[data-toggle^="button"]', function (e) {
            t(e.target).closest(".btn").toggleClass("focus", /^focus(in)?$/.test(e.type))
        })
    }(i), +function (t) {
        function e(e) {
            return this.each(function () {
                var i = t(this), r = i.data("bs.carousel"), o = t.extend({}, n.DEFAULTS, i.data(), "object" == typeof e && e), a = "string" == typeof e ? e : o.slide;
                r || i.data("bs.carousel", r = new n(this, o)), "number" == typeof e ? r.to(e) : a ? r[a]() : o.interval && r.pause().cycle()
            })
        }

        var n = function (e, n) {
            this.$element = t(e), this.$indicators = this.$element.find(".carousel-indicators"), this.options = n, this.paused = null, this.sliding = null, this.interval = null, this.$active = null, this.$items = null, this.options.keyboard && this.$element.on("keydown.bs.carousel", t.proxy(this.keydown, this)), "hover" == this.options.pause && !("ontouchstart" in document.documentElement) && this.$element.on("mouseenter.bs.carousel", t.proxy(this.pause, this)).on("mouseleave.bs.carousel", t.proxy(this.cycle, this))
        };
        n.VERSION = "3.3.5", n.TRANSITION_DURATION = 600, n.DEFAULTS = {
            interval: 5e3,
            pause: "hover",
            wrap: !0,
            keyboard: !0
        }, n.prototype.keydown = function (t) {
            if (!/input|textarea/i.test(t.target.tagName)) {
                switch (t.which) {
                    case 37:
                        this.prev();
                        break;
                    case 39:
                        this.next();
                        break;
                    default:
                        return
                }
                t.preventDefault()
            }
        }, n.prototype.cycle = function (e) {
            return e || (this.paused = !1), this.interval && clearInterval(this.interval), this.options.interval && !this.paused && (this.interval = setInterval(t.proxy(this.next, this), this.options.interval)), this
        }, n.prototype.getItemIndex = function (t) {
            return this.$items = t.parent().children(".item"), this.$items.index(t || this.$active)
        }, n.prototype.getItemForDirection = function (t, e) {
            var n = this.getItemIndex(e), i = "prev" == t && 0 === n || "next" == t && n == this.$items.length - 1;
            if (i && !this.options.wrap)return e;
            var r = "prev" == t ? -1 : 1, o = (n + r) % this.$items.length;
            return this.$items.eq(o)
        }, n.prototype.to = function (t) {
            var e = this, n = this.getItemIndex(this.$active = this.$element.find(".item.active"));
            return t > this.$items.length - 1 || 0 > t ? void 0 : this.sliding ? this.$element.one("slid.bs.carousel", function () {
                e.to(t)
            }) : n == t ? this.pause().cycle() : this.slide(t > n ? "next" : "prev", this.$items.eq(t))
        }, n.prototype.pause = function (e) {
            return e || (this.paused = !0), this.$element.find(".next, .prev").length && t.support.transition && (this.$element.trigger(t.support.transition.end), this.cycle(!0)), this.interval = clearInterval(this.interval), this
        }, n.prototype.next = function () {
            return this.sliding ? void 0 : this.slide("next")
        }, n.prototype.prev = function () {
            return this.sliding ? void 0 : this.slide("prev")
        }, n.prototype.slide = function (e, i) {
            var r = this.$element.find(".item.active"), o = i || this.getItemForDirection(e, r), a = this.interval, s = "next" == e ? "left" : "right", l = this;
            if (o.hasClass("active"))return this.sliding = !1;
            var u = o[0], c = t.Event("slide.bs.carousel", {relatedTarget: u, direction: s});
            if (this.$element.trigger(c), !c.isDefaultPrevented()) {
                if (this.sliding = !0, a && this.pause(), this.$indicators.length) {
                    this.$indicators.find(".active").removeClass("active");
                    var d = t(this.$indicators.children()[this.getItemIndex(o)]);
                    d && d.addClass("active")
                }
                var f = t.Event("slid.bs.carousel", {relatedTarget: u, direction: s});
                return t.support.transition && this.$element.hasClass("slide") ? (o.addClass(e), o[0].offsetWidth, r.addClass(s), o.addClass(s), r.one("bsTransitionEnd", function () {
                    o.removeClass([e, s].join(" ")).addClass("active"), r.removeClass(["active", s].join(" ")), l.sliding = !1, setTimeout(function () {
                        l.$element.trigger(f)
                    }, 0)
                }).emulateTransitionEnd(n.TRANSITION_DURATION)) : (r.removeClass("active"), o.addClass("active"), this.sliding = !1, this.$element.trigger(f)), a && this.cycle(), this
            }
        };
        var i = t.fn.carousel;
        t.fn.carousel = e, t.fn.carousel.Constructor = n, t.fn.carousel.noConflict = function () {
            return t.fn.carousel = i, this
        };
        var r = function (n) {
            var i, r = t(this), o = t(r.attr("data-target") || (i = r.attr("href")) && i.replace(/.*(?=#[^\s]+$)/, ""));
            if (o.hasClass("carousel")) {
                var a = t.extend({}, o.data(), r.data()), s = r.attr("data-slide-to");
                s && (a.interval = !1), e.call(o, a), s && o.data("bs.carousel").to(s), n.preventDefault()
            }
        };
        t(document).on("click.bs.carousel.data-api", "[data-slide]", r).on("click.bs.carousel.data-api", "[data-slide-to]", r), t(window).on("load", function () {
            t('[data-ride="carousel"]').each(function () {
                var n = t(this);
                e.call(n, n.data())
            })
        })
    }(i), +function (t) {
        function e(e) {
            var n, i = e.attr("data-target") || (n = e.attr("href")) && n.replace(/.*(?=#[^\s]+$)/, "");
            return t(i)
        }

        function n(e) {
            return this.each(function () {
                var n = t(this), r = n.data("bs.collapse"), o = t.extend({}, i.DEFAULTS, n.data(), "object" == typeof e && e);
                !r && o.toggle && /show|hide/.test(e) && (o.toggle = !1), r || n.data("bs.collapse", r = new i(this, o)), "string" == typeof e && r[e]()
            })
        }

        var i = function (e, n) {
            this.$element = t(e), this.options = t.extend({}, i.DEFAULTS, n), this.$trigger = t('[data-toggle="collapse"][href="#' + e.id + '"],[data-toggle="collapse"][data-target="#' + e.id + '"]'), this.transitioning = null, this.options.parent ? this.$parent = this.getParent() : this.addAriaAndCollapsedClass(this.$element, this.$trigger), this.options.toggle && this.toggle()
        };
        i.VERSION = "3.3.5", i.TRANSITION_DURATION = 350, i.DEFAULTS = {toggle: !0}, i.prototype.dimension = function () {
            var t = this.$element.hasClass("width");
            return t ? "width" : "height"
        }, i.prototype.show = function () {
            if (!this.transitioning && !this.$element.hasClass("in")) {
                var e, r = this.$parent && this.$parent.children(".panel").children(".in, .collapsing");
                if (!(r && r.length && (e = r.data("bs.collapse"), e && e.transitioning))) {
                    var o = t.Event("show.bs.collapse");
                    if (this.$element.trigger(o), !o.isDefaultPrevented()) {
                        r && r.length && (n.call(r, "hide"), e || r.data("bs.collapse", null));
                        var a = this.dimension();
                        this.$element.removeClass("collapse").addClass("collapsing")[a](0).attr("aria-expanded", !0), this.$trigger.removeClass("collapsed").attr("aria-expanded", !0), this.transitioning = 1;
                        var s = function () {
                            this.$element.removeClass("collapsing").addClass("collapse in")[a](""), this.transitioning = 0, this.$element.trigger("shown.bs.collapse")
                        };
                        if (!t.support.transition)return s.call(this);
                        var l = t.camelCase(["scroll", a].join("-"));
                        this.$element.one("bsTransitionEnd", t.proxy(s, this)).emulateTransitionEnd(i.TRANSITION_DURATION)[a](this.$element[0][l])
                    }
                }
            }
        }, i.prototype.hide = function () {
            if (!this.transitioning && this.$element.hasClass("in")) {
                var e = t.Event("hide.bs.collapse");
                if (this.$element.trigger(e), !e.isDefaultPrevented()) {
                    var n = this.dimension();
                    this.$element[n](this.$element[n]())[0].offsetHeight, this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded", !1), this.$trigger.addClass("collapsed").attr("aria-expanded", !1), this.transitioning = 1;
                    var r = function () {
                        this.transitioning = 0, this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")
                    };
                    return t.support.transition ? void this.$element[n](0).one("bsTransitionEnd", t.proxy(r, this)).emulateTransitionEnd(i.TRANSITION_DURATION) : r.call(this)
                }
            }
        }, i.prototype.toggle = function () {
            this[this.$element.hasClass("in") ? "hide" : "show"]()
        }, i.prototype.getParent = function () {
            return t(this.options.parent).find('[data-toggle="collapse"][data-parent="' + this.options.parent + '"]').each(t.proxy(function (n, i) {
                var r = t(i);
                this.addAriaAndCollapsedClass(e(r), r)
            }, this)).end()
        }, i.prototype.addAriaAndCollapsedClass = function (t, e) {
            var n = t.hasClass("in");
            t.attr("aria-expanded", n), e.toggleClass("collapsed", !n).attr("aria-expanded", n)
        };
        var r = t.fn.collapse;
        t.fn.collapse = n, t.fn.collapse.Constructor = i, t.fn.collapse.noConflict = function () {
            return t.fn.collapse = r, this
        }, t(document).on("click.bs.collapse.data-api", '[data-toggle="collapse"]', function (i) {
            var r = t(this);
            r.attr("data-target") || i.preventDefault();
            var o = e(r), a = o.data("bs.collapse"), s = a ? "toggle" : r.data();
            n.call(o, s)
        })
    }(i), +function (t) {
        function e(e) {
            var n = e.attr("data-target");
            n || (n = e.attr("href"), n = n && /#[A-Za-z]/.test(n) && n.replace(/.*(?=#[^\s]*$)/, ""));
            var i = n && t(n);
            return i && i.length ? i : e.parent()
        }

        function n(n) {
            n && 3 === n.which || (t(r).remove(), t(o).each(function () {
                var i = t(this), r = e(i), o = {relatedTarget: this};
                r.hasClass("open") && (n && "click" == n.type && /input|textarea/i.test(n.target.tagName) && t.contains(r[0], n.target) || (r.trigger(n = t.Event("hide.bs.dropdown", o)), n.isDefaultPrevented() || (i.attr("aria-expanded", "false"), r.removeClass("open").trigger("hidden.bs.dropdown", o))))
            }))
        }

        function i(e) {
            return this.each(function () {
                var n = t(this), i = n.data("bs.dropdown");
                i || n.data("bs.dropdown", i = new a(this)), "string" == typeof e && i[e].call(n)
            })
        }

        var r = ".dropdown-backdrop", o = '[data-toggle="dropdown"]', a = function (e) {
            t(e).on("click.bs.dropdown", this.toggle)
        };
        a.VERSION = "3.3.5", a.prototype.toggle = function (i) {
            var r = t(this);
            if (!r.is(".disabled, :disabled")) {
                var o = e(r), a = o.hasClass("open");
                if (n(), !a) {
                    "ontouchstart" in document.documentElement && !o.closest(".navbar-nav").length && t(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(t(this)).on("click", n);
                    var s = {relatedTarget: this};
                    if (o.trigger(i = t.Event("show.bs.dropdown", s)), i.isDefaultPrevented())return;
                    r.trigger("focus").attr("aria-expanded", "true"), o.toggleClass("open").trigger("shown.bs.dropdown", s)
                }
                return !1
            }
        }, a.prototype.keydown = function (n) {
            if (/(38|40|27|32)/.test(n.which) && !/input|textarea/i.test(n.target.tagName)) {
                var i = t(this);
                if (n.preventDefault(), n.stopPropagation(), !i.is(".disabled, :disabled")) {
                    var r = e(i), a = r.hasClass("open");
                    if (!a && 27 != n.which || a && 27 == n.which)return 27 == n.which && r.find(o).trigger("focus"), i.trigger("click");
                    var s = " li:not(.disabled):visible a", l = r.find(".dropdown-menu" + s);
                    if (l.length) {
                        var u = l.index(n.target);
                        38 == n.which && u > 0 && u--, 40 == n.which && u < l.length - 1 && u++, ~u || (u = 0), l.eq(u).trigger("focus")
                    }
                }
            }
        };
        var s = t.fn.dropdown;
        t.fn.dropdown = i, t.fn.dropdown.Constructor = a, t.fn.dropdown.noConflict = function () {
            return t.fn.dropdown = s, this
        }, t(document).on("click.bs.dropdown.data-api", n).on("click.bs.dropdown.data-api", ".dropdown form", function (t) {
            t.stopPropagation()
        }).on("click.bs.dropdown.data-api", o, a.prototype.toggle).on("keydown.bs.dropdown.data-api", o, a.prototype.keydown).on("keydown.bs.dropdown.data-api", ".dropdown-menu", a.prototype.keydown)
    }(i), +function (t) {
        function e(e, i) {
            return this.each(function () {
                var r = t(this), o = r.data("bs.modal"), a = t.extend({}, n.DEFAULTS, r.data(), "object" == typeof e && e);
                o || r.data("bs.modal", o = new n(this, a)), "string" == typeof e ? o[e](i) : a.show && o.show(i)
            })
        }

        var n = function (e, n) {
            this.options = n, this.$body = t(document.body), this.$element = t(e), this.$dialog = this.$element.find(".modal-dialog"), this.$backdrop = null, this.isShown = null, this.originalBodyPad = null, this.scrollbarWidth = 0, this.ignoreBackdropClick = !1, this.options.remote && this.$element.find(".modal-content").load(this.options.remote, t.proxy(function () {
                this.$element.trigger("loaded.bs.modal")
            }, this))
        };
        n.VERSION = "3.3.5", n.TRANSITION_DURATION = 300, n.BACKDROP_TRANSITION_DURATION = 150, n.DEFAULTS = {
            backdrop: !0,
            keyboard: !0,
            show: !0
        }, n.prototype.toggle = function (t) {
            return this.isShown ? this.hide() : this.show(t)
        }, n.prototype.show = function (e) {
            var i = this, r = t.Event("show.bs.modal", {relatedTarget: e});
            this.$element.trigger(r), this.isShown || r.isDefaultPrevented() || (this.isShown = !0, this.checkScrollbar(), this.setScrollbar(), this.$body.addClass("modal-open"), this.escape(), this.resize(), this.$element.on("click.dismiss.bs.modal", '[data-dismiss="modal"]', t.proxy(this.hide, this)), this.$dialog.on("mousedown.dismiss.bs.modal", function () {
                i.$element.one("mouseup.dismiss.bs.modal", function (e) {
                    t(e.target).is(i.$element) && (i.ignoreBackdropClick = !0)
                })
            }), this.backdrop(function () {
                var r = t.support.transition && i.$element.hasClass("fade");
                i.$element.parent().length || i.$element.appendTo(i.$body), i.$element.show().scrollTop(0), i.adjustDialog(), r && i.$element[0].offsetWidth, i.$element.addClass("in"), i.$element.children().eq(0).css("position", "absolute").css({
                    margin: "0px",
                    top: function () {
                        return (i.$element.height() - i.$element.children().eq(0).height() - 40) / 2 + "px"
                    },
                    left: function () {
                        return (i.$element.width() - i.$element.children().eq(0).width()) / 2 + "px"
                    }
                }), i.enforceFocus();
                var o = t.Event("shown.bs.modal", {relatedTarget: e});
                r ? i.$dialog.one("bsTransitionEnd", function () {
                    i.$element.trigger("focus").trigger(o)
                }).emulateTransitionEnd(n.TRANSITION_DURATION) : i.$element.trigger("focus").trigger(o)
            }))
        }, n.prototype.hide = function (e) {
            e && e.preventDefault(), e = t.Event("hide.bs.modal"), this.$element.trigger(e), this.isShown && !e.isDefaultPrevented() && (this.isShown = !1, this.escape(), this.resize(), t(document).off("focusin.bs.modal"), this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"), this.$dialog.off("mousedown.dismiss.bs.modal"), t.support.transition && this.$element.hasClass("fade") ? this.$element.one("bsTransitionEnd", t.proxy(this.hideModal, this)).emulateTransitionEnd(n.TRANSITION_DURATION) : this.hideModal())
        }, n.prototype.enforceFocus = function () {
            t(document).off("focusin.bs.modal").on("focusin.bs.modal", t.proxy(function (t) {
                this.$element[0] === t.target || this.$element.has(t.target).length || this.$element.trigger("focus")
            }, this))
        }, n.prototype.escape = function () {
            this.isShown && this.options.keyboard ? this.$element.on("keydown.dismiss.bs.modal", t.proxy(function (t) {
                27 == t.which && this.hide()
            }, this)) : this.isShown || this.$element.off("keydown.dismiss.bs.modal")
        }, n.prototype.resize = function () {
            this.isShown ? t(window).on("resize.bs.modal", t.proxy(this.handleUpdate, this)) : t(window).off("resize.bs.modal")
        }, n.prototype.hideModal = function () {
            var t = this;
            this.$element.hide(), this.backdrop(function () {
                t.$body.removeClass("modal-open"), t.resetAdjustments(), t.resetScrollbar(), t.$element.trigger("hidden.bs.modal")
            })
        }, n.prototype.removeBackdrop = function () {
            this.$backdrop && this.$backdrop.remove(), this.$backdrop = null
        }, n.prototype.backdrop = function (e) {
            var i = this, r = this.$element.hasClass("fade") ? "fade" : "";
            if (this.isShown && this.options.backdrop) {
                var o = t.support.transition && r;
                if (this.$backdrop = t(document.createElement("div")).addClass("modal-backdrop " + r).appendTo(this.$body), this.$element.on("click.dismiss.bs.modal", t.proxy(function (t) {
                        return this.ignoreBackdropClick ? void(this.ignoreBackdropClick = !1) : void(t.target === t.currentTarget && ("static" == this.options.backdrop ? this.$element[0].focus() : this.hide()))
                    }, this)), o && this.$backdrop[0].offsetWidth, this.$backdrop.addClass("in"), !e)return;
                o ? this.$backdrop.one("bsTransitionEnd", e).emulateTransitionEnd(n.BACKDROP_TRANSITION_DURATION) : e()
            } else if (!this.isShown && this.$backdrop) {
                this.$backdrop.removeClass("in");
                var a = function () {
                    i.removeBackdrop(), e && e()
                };
                t.support.transition && this.$element.hasClass("fade") ? this.$backdrop.one("bsTransitionEnd", a).emulateTransitionEnd(n.BACKDROP_TRANSITION_DURATION) : a()
            } else e && e()
        }, n.prototype.handleUpdate = function () {
            this.adjustDialog()
        }, n.prototype.adjustDialog = function () {
            var t = this.$element[0].scrollHeight > document.documentElement.clientHeight;
            this.$element.css({
                paddingLeft: !this.bodyIsOverflowing && t ? this.scrollbarWidth : "",
                paddingRight: this.bodyIsOverflowing && !t ? this.scrollbarWidth : ""
            })
        }, n.prototype.resetAdjustments = function () {
            this.$element.css({paddingLeft: "", paddingRight: ""})
        }, n.prototype.checkScrollbar = function () {
            var t = window.innerWidth;
            if (!t) {
                var e = document.documentElement.getBoundingClientRect();
                t = e.right - Math.abs(e.left)
            }
            this.bodyIsOverflowing = document.body.clientWidth < t, this.scrollbarWidth = this.measureScrollbar()
        }, n.prototype.setScrollbar = function () {
            var t = parseInt(this.$body.css("padding-right") || 0, 10);
            this.originalBodyPad = document.body.style.paddingRight || "", this.bodyIsOverflowing && this.$body.css("padding-right", t + this.scrollbarWidth)
        }, n.prototype.resetScrollbar = function () {
            this.$body.css("padding-right", this.originalBodyPad)
        }, n.prototype.measureScrollbar = function () {
            var t = document.createElement("div");
            t.className = "modal-scrollbar-measure", this.$body.append(t);
            var e = t.offsetWidth - t.clientWidth;
            return this.$body[0].removeChild(t), e
        };
        var i = t.fn.modal;
        t.fn.modal = e, t.fn.modal.Constructor = n, t.fn.modal.noConflict = function () {
            return t.fn.modal = i, this
        }, t(document).on("click.bs.modal.data-api", '[data-toggle="modal"]', function (n) {
            var i = t(this), r = i.attr("href"), o = t(i.attr("data-target") || r && r.replace(/.*(?=#[^\s]+$)/, "")), a = o.data("bs.modal") ? "toggle" : t.extend({remote: !/#/.test(r) && r}, o.data(), i.data());
            i.is("a") && n.preventDefault(), o.one("show.bs.modal", function (t) {
                t.isDefaultPrevented() || o.one("hidden.bs.modal", function () {
                    i.is(":visible") && i.trigger("focus")
                })
            }), e.call(o, a, this)
        })
    }(i), +function (t) {
        function e(e) {
            return this.each(function () {
                var i = t(this), r = i.data("bs.tooltip"), o = "object" == typeof e && e;
                (r || !/destroy|hide/.test(e)) && (r || i.data("bs.tooltip", r = new n(this, o)), "string" == typeof e && r[e]())
            })
        }

        var n = function (t, e) {
            this.type = null, this.options = null, this.enabled = null, this.timeout = null, this.hoverState = null, this.$element = null, this.inState = null, this.init("tooltip", t, e)
        };
        n.VERSION = "3.3.5", n.TRANSITION_DURATION = 150, n.DEFAULTS = {
            animation: !0,
            placement: "top",
            selector: !1,
            template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
            trigger: "hover focus",
            title: "",
            delay: 0,
            html: !1,
            container: !1,
            viewport: {selector: "body", padding: 0}
        }, n.prototype.init = function (e, n, i) {
            if (this.enabled = !0, this.type = e, this.$element = t(n), this.options = this.getOptions(i), this.$viewport = this.options.viewport && t(t.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : this.options.viewport.selector || this.options.viewport), this.inState = {
                    click: !1,
                    hover: !1,
                    focus: !1
                }, this.$element[0] instanceof document.constructor && !this.options.selector)throw new Error("`selector` option must be specified when initializing " + this.type + " on the window.document object!");
            for (var r = this.options.trigger.split(" "), o = r.length; o--;) {
                var a = r[o];
                if ("click" == a)this.$element.on("click." + this.type, this.options.selector, t.proxy(this.toggle, this)); else if ("manual" != a) {
                    var s = "hover" == a ? "mouseenter" : "focusin", l = "hover" == a ? "mouseleave" : "focusout";
                    this.$element.on(s + "." + this.type, this.options.selector, t.proxy(this.enter, this)), this.$element.on(l + "." + this.type, this.options.selector, t.proxy(this.leave, this))
                }
            }
            this.options.selector ? this._options = t.extend({}, this.options, {
                trigger: "manual",
                selector: ""
            }) : this.fixTitle()
        }, n.prototype.getDefaults = function () {
            return n.DEFAULTS
        }, n.prototype.getOptions = function (e) {
            return e = t.extend({}, this.getDefaults(), this.$element.data(), e), e.delay && "number" == typeof e.delay && (e.delay = {
                show: e.delay,
                hide: e.delay
            }), e
        }, n.prototype.getDelegateOptions = function () {
            var e = {}, n = this.getDefaults();
            return this._options && t.each(this._options, function (t, i) {
                n[t] != i && (e[t] = i)
            }), e
        }, n.prototype.enter = function (e) {
            var n = e instanceof this.constructor ? e : t(e.currentTarget).data("bs." + this.type);
            return n || (n = new this.constructor(e.currentTarget, this.getDelegateOptions()), t(e.currentTarget).data("bs." + this.type, n)), e instanceof t.Event && (n.inState["focusin" == e.type ? "focus" : "hover"] = !0), n.tip().hasClass("in") || "in" == n.hoverState ? void(n.hoverState = "in") : (clearTimeout(n.timeout), n.hoverState = "in", n.options.delay && n.options.delay.show ? void(n.timeout = setTimeout(function () {
                "in" == n.hoverState && n.show()
            }, n.options.delay.show)) : n.show())
        }, n.prototype.isInStateTrue = function () {
            for (var t in this.inState)if (this.inState[t])return !0;
            return !1
        }, n.prototype.leave = function (e) {
            var n = e instanceof this.constructor ? e : t(e.currentTarget).data("bs." + this.type);
            return n || (n = new this.constructor(e.currentTarget, this.getDelegateOptions()), t(e.currentTarget).data("bs." + this.type, n)), e instanceof t.Event && (n.inState["focusout" == e.type ? "focus" : "hover"] = !1), n.isInStateTrue() ? void 0 : (clearTimeout(n.timeout), n.hoverState = "out", n.options.delay && n.options.delay.hide ? void(n.timeout = setTimeout(function () {
                "out" == n.hoverState && n.hide()
            }, n.options.delay.hide)) : n.hide())
        }, n.prototype.show = function () {
            var e = t.Event("show.bs." + this.type);
            if (this.hasContent() && this.enabled) {
                this.$element.trigger(e);
                var i = t.contains(this.$element[0].ownerDocument.documentElement, this.$element[0]);
                if (e.isDefaultPrevented() || !i)return;
                var r = this, o = this.tip(), a = this.getUID(this.type);
                this.setContent(), o.attr("id", a), this.$element.attr("aria-describedby", a), this.options.animation && o.addClass("fade");
                var s = "function" == typeof this.options.placement ? this.options.placement.call(this, o[0], this.$element[0]) : this.options.placement, l = /\s?auto?\s?/i, u = l.test(s);
                u && (s = s.replace(l, "") || "top"), o.detach().css({
                    top: 0,
                    left: 0,
                    display: "block"
                }).addClass(s).data("bs." + this.type, this), this.options.container ? o.appendTo(this.options.container) : o.insertAfter(this.$element), this.$element.trigger("inserted.bs." + this.type);
                var c = this.getPosition(), d = o[0].offsetWidth, f = o[0].offsetHeight;
                if (u) {
                    var p = s, h = this.getPosition(this.$viewport);
                    s = "bottom" == s && c.bottom + f > h.bottom ? "top" : "top" == s && c.top - f < h.top ? "bottom" : "right" == s && c.right + d > h.width ? "left" : "left" == s && c.left - d < h.left ? "right" : s, o.removeClass(p).addClass(s)
                }
                var m = this.getCalculatedOffset(s, c, d, f);
                this.applyPlacement(m, s);
                var g = function () {
                    var t = r.hoverState;
                    r.$element.trigger("shown.bs." + r.type), r.hoverState = null, "out" == t && r.leave(r)
                };
                t.support.transition && this.$tip.hasClass("fade") ? o.one("bsTransitionEnd", g).emulateTransitionEnd(n.TRANSITION_DURATION) : g()
            }
        }, n.prototype.applyPlacement = function (e, n) {
            var i = this.tip(), r = i[0].offsetWidth, o = i[0].offsetHeight, a = parseInt(i.css("margin-top"), 10), s = parseInt(i.css("margin-left"), 10);
            isNaN(a) && (a = 0), isNaN(s) && (s = 0), e.top += a, e.left += s, t.offset.setOffset(i[0], t.extend({
                using: function (t) {
                    i.css({top: Math.round(t.top), left: Math.round(t.left)})
                }
            }, e), 0), i.addClass("in");
            var l = i[0].offsetWidth, u = i[0].offsetHeight;
            "top" == n && u != o && (e.top = e.top + o - u);
            var c = this.getViewportAdjustedDelta(n, e, l, u);
            c.left ? e.left += c.left : e.top += c.top;
            var d = /top|bottom/.test(n), f = d ? 2 * c.left - r + l : 2 * c.top - o + u, p = d ? "offsetWidth" : "offsetHeight";
            i.offset(e), this.replaceArrow(f, i[0][p], d)
        }, n.prototype.replaceArrow = function (t, e, n) {
            this.arrow().css(n ? "left" : "top", 50 * (1 - t / e) + "%").css(n ? "top" : "left", "")
        }, n.prototype.setContent = function () {
            var t = this.tip(), e = this.getTitle();
            t.find(".tooltip-inner")[this.options.html ? "html" : "text"](e), t.removeClass("fade in top bottom left right")
        }, n.prototype.hide = function (e) {
            function i() {
                "in" != r.hoverState && o.detach(), r.$element.removeAttr("aria-describedby").trigger("hidden.bs." + r.type), e && e()
            }

            var r = this, o = t(this.$tip), a = t.Event("hide.bs." + this.type);
            return this.$element.trigger(a), a.isDefaultPrevented() ? void 0 : (o.removeClass("in"), t.support.transition && o.hasClass("fade") ? o.one("bsTransitionEnd", i).emulateTransitionEnd(n.TRANSITION_DURATION) : i(), this.hoverState = null, this)
        }, n.prototype.fixTitle = function () {
            var t = this.$element;
            (t.attr("title") || "string" != typeof t.attr("data-original-title")) && t.attr("data-original-title", t.attr("title") || "").attr("title", "")
        }, n.prototype.hasContent = function () {
            return this.getTitle()
        }, n.prototype.getPosition = function (e) {
            e = e || this.$element;
            var n = e[0], i = "BODY" == n.tagName, r = n.getBoundingClientRect();
            null == r.width && (r = t.extend({}, r, {width: r.right - r.left, height: r.bottom - r.top}));
            var o = i ? {
                top: 0,
                left: 0
            } : e.offset(), a = {scroll: i ? document.documentElement.scrollTop || document.body.scrollTop : e.scrollTop()}, s = i ? {
                width: t(window).width(),
                height: t(window).height()
            } : null;
            return t.extend({}, r, a, s, o)
        }, n.prototype.getCalculatedOffset = function (t, e, n, i) {
            return "bottom" == t ? {
                top: e.top + e.height,
                left: e.left + e.width / 2 - n / 2
            } : "top" == t ? {
                top: e.top - i,
                left: e.left + e.width / 2 - n / 2
            } : "left" == t ? {
                top: e.top + e.height / 2 - i / 2,
                left: e.left - n
            } : {top: e.top + e.height / 2 - i / 2, left: e.left + e.width}
        }, n.prototype.getViewportAdjustedDelta = function (t, e, n, i) {
            var r = {top: 0, left: 0};
            if (!this.$viewport)return r;
            var o = this.options.viewport && this.options.viewport.padding || 0, a = this.getPosition(this.$viewport);
            if (/right|left/.test(t)) {
                var s = e.top - o - a.scroll, l = e.top + o - a.scroll + i;
                s < a.top ? r.top = a.top - s : l > a.top + a.height && (r.top = a.top + a.height - l)
            } else {
                var u = e.left - o, c = e.left + o + n;
                u < a.left ? r.left = a.left - u : c > a.right && (r.left = a.left + a.width - c)
            }
            return r
        }, n.prototype.getTitle = function () {
            var t, e = this.$element, n = this.options;
            return t = e.attr("data-original-title") || ("function" == typeof n.title ? n.title.call(e[0]) : n.title)
        }, n.prototype.getUID = function (t) {
            do t += ~~(1e6 * Math.random()); while (document.getElementById(t));
            return t
        }, n.prototype.tip = function () {
            if (!this.$tip && (this.$tip = t(this.options.template), 1 != this.$tip.length))throw new Error(this.type + " `template` option must consist of exactly 1 top-level element!");
            return this.$tip
        }, n.prototype.arrow = function () {
            return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow")
        }, n.prototype.enable = function () {
            this.enabled = !0
        }, n.prototype.disable = function () {
            this.enabled = !1
        }, n.prototype.toggleEnabled = function () {
            this.enabled = !this.enabled
        }, n.prototype.toggle = function (e) {
            var n = this;
            e && (n = t(e.currentTarget).data("bs." + this.type), n || (n = new this.constructor(e.currentTarget, this.getDelegateOptions()), t(e.currentTarget).data("bs." + this.type, n))), e ? (n.inState.click = !n.inState.click, n.isInStateTrue() ? n.enter(n) : n.leave(n)) : n.tip().hasClass("in") ? n.leave(n) : n.enter(n)
        }, n.prototype.destroy = function () {
            var t = this;
            clearTimeout(this.timeout), this.hide(function () {
                t.$element.off("." + t.type).removeData("bs." + t.type), t.$tip && t.$tip.detach(), t.$tip = null, t.$arrow = null, t.$viewport = null
            })
        };
        var i = t.fn.tooltip;
        t.fn.tooltip = e, t.fn.tooltip.Constructor = n, t.fn.tooltip.noConflict = function () {
            return t.fn.tooltip = i, this
        }
    }(i), +function (t) {
        function e(e) {
            return this.each(function () {
                var i = t(this), r = i.data("bs.popover"), o = "object" == typeof e && e;
                (r || !/destroy|hide/.test(e)) && (r || i.data("bs.popover", r = new n(this, o)), "string" == typeof e && r[e]())
            })
        }

        var n = function (t, e) {
            this.init("popover", t, e)
        };
        if (!t.fn.tooltip)throw new Error("Popover requires tooltip.js");
        n.VERSION = "3.3.5", n.DEFAULTS = t.extend({}, t.fn.tooltip.Constructor.DEFAULTS, {
            placement: "right",
            trigger: "click",
            content: "",
            template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'
        }), n.prototype = t.extend({}, t.fn.tooltip.Constructor.prototype), n.prototype.constructor = n, n.prototype.getDefaults = function () {
            return n.DEFAULTS
        }, n.prototype.setContent = function () {
            var t = this.tip(), e = this.getTitle(), n = this.getContent();
            t.find(".popover-title")[this.options.html ? "html" : "text"](e), t.find(".popover-content").children().detach().end()[this.options.html ? "string" == typeof n ? "html" : "append" : "text"](n), t.removeClass("fade top bottom left right in"), t.find(".popover-title").html() || t.find(".popover-title").hide()
        }, n.prototype.hasContent = function () {
            return this.getTitle() || this.getContent()
        }, n.prototype.getContent = function () {
            var t = this.$element, e = this.options;
            return t.attr("data-content") || ("function" == typeof e.content ? e.content.call(t[0]) : e.content)
        }, n.prototype.arrow = function () {
            return this.$arrow = this.$arrow || this.tip().find(".arrow")
        };
        var i = t.fn.popover;
        t.fn.popover = e, t.fn.popover.Constructor = n, t.fn.popover.noConflict = function () {
            return t.fn.popover = i, this
        }
    }(i), +function (t) {
        function e(n, i) {
            this.$body = t(document.body), this.$scrollElement = t(t(n).is(document.body) ? window : n), this.options = t.extend({}, e.DEFAULTS, i), this.selector = (this.options.target || "") + " .nav li > a", this.offsets = [], this.targets = [], this.activeTarget = null, this.scrollHeight = 0, this.$scrollElement.on("scroll.bs.scrollspy", t.proxy(this.process, this)), this.refresh(), this.process()
        }

        function n(n) {
            return this.each(function () {
                var i = t(this), r = i.data("bs.scrollspy"), o = "object" == typeof n && n;
                r || i.data("bs.scrollspy", r = new e(this, o)), "string" == typeof n && r[n]()
            })
        }

        e.VERSION = "3.3.5", e.DEFAULTS = {offset: 10}, e.prototype.getScrollHeight = function () {
            return this.$scrollElement[0].scrollHeight || Math.max(this.$body[0].scrollHeight, document.documentElement.scrollHeight)
        }, e.prototype.refresh = function () {
            var e = this, n = "offset", i = 0;
            this.offsets = [], this.targets = [], this.scrollHeight = this.getScrollHeight(), t.isWindow(this.$scrollElement[0]) || (n = "position",
                i = this.$scrollElement.scrollTop()), this.$body.find(this.selector).map(function () {
                var e = t(this), r = e.data("target") || e.attr("href"), o = /^#./.test(r) && t(r);
                return o && o.length && o.is(":visible") && [[o[n]().top + i, r]] || null
            }).sort(function (t, e) {
                return t[0] - e[0]
            }).each(function () {
                e.offsets.push(this[0]), e.targets.push(this[1])
            })
        }, e.prototype.process = function () {
            var t, e = this.$scrollElement.scrollTop() + this.options.offset, n = this.getScrollHeight(), i = this.options.offset + n - this.$scrollElement.height(), r = this.offsets, o = this.targets, a = this.activeTarget;
            if (this.scrollHeight != n && this.refresh(), e >= i)return a != (t = o[o.length - 1]) && this.activate(t);
            if (a && e < r[0])return this.activeTarget = null, this.clear();
            for (t = r.length; t--;)a != o[t] && e >= r[t] && (void 0 === r[t + 1] || e < r[t + 1]) && this.activate(o[t])
        }, e.prototype.activate = function (e) {
            this.activeTarget = e, this.clear();
            var n = this.selector + '[data-target="' + e + '"],' + this.selector + '[href="' + e + '"]', i = t(n).parents("li").addClass("active");
            i.parent(".dropdown-menu").length && (i = i.closest("li.dropdown").addClass("active")), i.trigger("activate.bs.scrollspy")
        }, e.prototype.clear = function () {
            t(this.selector).parentsUntil(this.options.target, ".active").removeClass("active")
        };
        var i = t.fn.scrollspy;
        t.fn.scrollspy = n, t.fn.scrollspy.Constructor = e, t.fn.scrollspy.noConflict = function () {
            return t.fn.scrollspy = i, this
        }, t(window).on("load.bs.scrollspy.data-api", function () {
            t('[data-spy="scroll"]').each(function () {
                var e = t(this);
                n.call(e, e.data())
            })
        })
    }(i), +function (t) {
        function e(e) {
            return this.each(function () {
                var i = t(this), r = i.data("bs.tab");
                r || i.data("bs.tab", r = new n(this)), "string" == typeof e && r[e]()
            })
        }

        var n = function (e) {
            this.element = t(e)
        };
        n.VERSION = "3.3.5", n.TRANSITION_DURATION = 150, n.prototype.show = function () {
            var e = this.element, n = e.closest("ul:not(.dropdown-menu)"), i = e.data("target");
            if (i || (i = e.attr("href"), i = i && i.replace(/.*(?=#[^\s]*$)/, "")), !e.parent("li").hasClass("active")) {
                var r = n.find(".active:last a"), o = t.Event("hide.bs.tab", {relatedTarget: e[0]}), a = t.Event("show.bs.tab", {relatedTarget: r[0]});
                if (r.trigger(o), e.trigger(a), !a.isDefaultPrevented() && !o.isDefaultPrevented()) {
                    var s = t(i);
                    this.activate(e.closest("li"), n), this.activate(s, s.parent(), function () {
                        r.trigger({type: "hidden.bs.tab", relatedTarget: e[0]}), e.trigger({
                            type: "shown.bs.tab",
                            relatedTarget: r[0]
                        })
                    })
                }
            }
        }, n.prototype.activate = function (e, i, r) {
            function o() {
                a.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded", !1), e.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded", !0), s ? (e[0].offsetWidth, e.addClass("in")) : e.removeClass("fade"), e.parent(".dropdown-menu").length && e.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded", !0), r && r()
            }

            var a = i.find("> .active"), s = r && t.support.transition && (a.length && a.hasClass("fade") || !!i.find("> .fade").length);
            a.length && s ? a.one("bsTransitionEnd", o).emulateTransitionEnd(n.TRANSITION_DURATION) : o(), a.removeClass("in")
        };
        var i = t.fn.tab;
        t.fn.tab = e, t.fn.tab.Constructor = n, t.fn.tab.noConflict = function () {
            return t.fn.tab = i, this
        };
        var r = function (n) {
            n.preventDefault(), e.call(t(this), "show")
        };
        t(document).on("click.bs.tab.data-api", '[data-toggle="tab"]', r).on("click.bs.tab.data-api", '[data-toggle="pill"]', r)
    }(i), +function (t) {
        function e(e) {
            return this.each(function () {
                var i = t(this), r = i.data("bs.affix"), o = "object" == typeof e && e;
                r || i.data("bs.affix", r = new n(this, o)), "string" == typeof e && r[e]()
            })
        }

        var n = function (e, i) {
            this.options = t.extend({}, n.DEFAULTS, i), this.$target = t(this.options.target).on("scroll.bs.affix.data-api", t.proxy(this.checkPosition, this)).on("click.bs.affix.data-api", t.proxy(this.checkPositionWithEventLoop, this)), this.$element = t(e), this.affixed = null, this.unpin = null, this.pinnedOffset = null, this.checkPosition()
        };
        n.VERSION = "3.3.5", n.RESET = "affix affix-top affix-bottom", n.DEFAULTS = {
            offset: 0,
            target: window
        }, n.prototype.getState = function (t, e, n, i) {
            var r = this.$target.scrollTop(), o = this.$element.offset(), a = this.$target.height();
            if (null != n && "top" == this.affixed)return n > r ? "top" : !1;
            if ("bottom" == this.affixed)return null != n ? r + this.unpin <= o.top ? !1 : "bottom" : t - i >= r + a ? !1 : "bottom";
            var s = null == this.affixed, l = s ? r : o.top, u = s ? a : e;
            return null != n && n >= r ? "top" : null != i && l + u >= t - i ? "bottom" : !1
        }, n.prototype.getPinnedOffset = function () {
            if (this.pinnedOffset)return this.pinnedOffset;
            this.$element.removeClass(n.RESET).addClass("affix");
            var t = this.$target.scrollTop(), e = this.$element.offset();
            return this.pinnedOffset = e.top - t
        }, n.prototype.checkPositionWithEventLoop = function () {
            setTimeout(t.proxy(this.checkPosition, this), 1)
        }, n.prototype.checkPosition = function () {
            if (this.$element.is(":visible")) {
                var e = this.$element.height(), i = this.options.offset, r = i.top, o = i.bottom, a = Math.max(t(document).height(), t(document.body).height());
                "object" != typeof i && (o = r = i), "function" == typeof r && (r = i.top(this.$element)), "function" == typeof o && (o = i.bottom(this.$element));
                var s = this.getState(a, e, r, o);
                if (this.affixed != s) {
                    null != this.unpin && this.$element.css("top", "");
                    var l = "affix" + (s ? "-" + s : ""), u = t.Event(l + ".bs.affix");
                    if (this.$element.trigger(u), u.isDefaultPrevented())return;
                    this.affixed = s, this.unpin = "bottom" == s ? this.getPinnedOffset() : null, this.$element.removeClass(n.RESET).addClass(l).trigger(l.replace("affix", "affixed") + ".bs.affix")
                }
                "bottom" == s && this.$element.offset({top: a - e - o})
            }
        };
        var i = t.fn.affix;
        t.fn.affix = e, t.fn.affix.Constructor = n, t.fn.affix.noConflict = function () {
            return t.fn.affix = i, this
        }, t(window).on("load", function () {
            t('[data-spy="affix"]').each(function () {
                var n = t(this), i = n.data();
                i.offset = i.offset || {}, null != i.offsetBottom && (i.offset.bottom = i.offsetBottom), null != i.offsetTop && (i.offset.top = i.offsetTop), e.call(n, i)
            })
        })
    }(i)
}, mok["lib/jquery.validform"] = function (t, e, n) {
    var i = t("lib/jquery.min");
    !function (t, e, n) {
        function i(e, n) {
            var i = (t(window).width() - e.outerWidth()) / 2, r = (t(window).height() - e.outerHeight()) / 2, r = (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + (r > 0 ? r : 0);
            e.css({left: i}).animate({top: r}, {duration: n, queue: !1})
        }

        function r() {
            return 0 !== t("#Validform_msg").length ? !1 : (a = t('<div id="Validform_msg"><div class="Validform_title">' + l.tit + '<a class="Validform_close" href="javascript:void(0);">&chi;</a></div><div class="Validform_info"></div><div class="iframe"><iframe frameborder="0" scrolling="no" height="100%" width="100%"></iframe></div></div>').appendTo("body"), a.find("a.Validform_close").click(function () {
                return a.hide(), s = !0, o && o.focus().addClass("Validform_error"), !1
            }).focus(function () {
                this.blur()
            }), void t(window).bind("scroll resize", function () {
                !s && i(a, 400)
            }))
        }

        var o = null, a = null, s = !0, l = {
            tit: "提示信息",
            w: {
                "*": "不能为空！",
                "*6-16": "请填写6到16位任意字符！",
                n: "请填写数字！",
                "n6-16": "请填写6到16位数字！",
                s: "不能输入特殊字符！",
                "s6-18": "请填写6到18位字符！",
                p: "请填写邮政编码！",
                m: "请填写手机号码！",
                e: "邮箱地址格式不对！",
                url: "请填写网址！"
            },
            def: "请填写正确信息！",
            undef: "datatype未定义！",
            reck: "两次输入的内容不一致！",
            r: "通过信息验证！",
            c: "正在检测信息…",
            s: "请{填写|选择}{0|信息}！",
            v: "所填信息没有经过验证，请稍后…",
            p: "正在提交数据…"
        };
        t.Tipmsg = l;
        var u = function (e, i, o) {
            var i = t.extend({}, u.defaults, i);
            i.datatype && t.extend(u.util.dataType, i.datatype);
            var a = this;
            return a.tipmsg = {w: {}}, a.forms = e, a.objects = [], o === !0 ? !1 : (e.each(function () {
                if ("inited" == this.validform_inited)return !0;
                this.validform_inited = "inited";
                var e = this;
                e.settings = t.extend({}, i);
                var r = t(e);
                e.validform_status = "normal", r.data("tipmsg", a.tipmsg), r.delegate("[datatype]", "blur", function () {
                    var t = arguments[1];
                    u.util.check.call(this, r, t)
                }), r.delegate(":text", "keypress", function (t) {
                    13 == t.keyCode && 0 == r.find(":submit").length && r.submit()
                }), u.util.enhance.call(r, e.settings.tiptype, e.settings.usePlugin, e.settings.tipSweep), e.settings.btnSubmit && r.find(e.settings.btnSubmit).bind("click", function () {
                    return r.trigger("submit"), !1
                }), r.submit(function () {
                    var t = u.util.submitForm.call(r, e.settings);
                    return t === n && (t = !0), t
                }), r.find("[type='reset']").add(r.find(e.settings.btnReset)).bind("click", function () {
                    u.util.resetForm.call(r)
                })
            }), void((1 == i.tiptype || (2 == i.tiptype || 3 == i.tiptype) && i.ajaxPost) && r()))
        };
        u.defaults = {
            tiptype: 1,
            tipSweep: !1,
            showAllError: !1,
            postonce: !1,
            ajaxPost: !1
        }, u.util = {
            dataType: {
                "*": /[\w\W]+/,
                "*6-16": /^[\w\W]{6,16}$/,
                n: /^\d+$/,
                "n6-16": /^\d{6,16}$/,
                s: /^[\u4E00-\u9FA5\uf900-\ufa2d\w\.\s]+$/,
                "s6-18": /^[\u4E00-\u9FA5\uf900-\ufa2d\w\.\s]{6,18}$/,
                p: /^[0-9]{6}$/,
                m: /^13[0-9]{9}$|14[0-9]{9}$|15[0-9]{9}$|17[0-9]{9}$|18[0-9]{9}$/,
                e: /^\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/,
                url: /^(\w+:\/\/)?\w+(\.\w+)+.*$/,
                tel: /^0\d{2,3}-\d{7,8}$/
            }, toString: Object.prototype.toString, isEmpty: function (e) {
                return "" === e || e === t.trim(this.attr("tip"))
            }, getValue: function (e) {
                var i, r = this;
                return e.is(":radio") ? (i = r.find(":radio[name='" + e.attr("name") + "']:checked").val(), i = i === n ? "" : i) : e.is(":checkbox") ? (i = "", r.find(":checkbox[name='" + e.attr("name") + "']:checked").each(function () {
                    i += t(this).val() + ","
                }), i = i === n ? "" : i) : i = e.val(), i = t.trim(i), u.util.isEmpty.call(e, i) ? "" : i
            }, enhance: function (e, n, i, r) {
                var o = this;
                o.find("[datatype]").each(function () {
                    2 == e ? 0 == t(this).parent().next().find(".Validform_checktip").length && (t(this).parent().next().append("<span class='Validform_checktip' />"), t(this).siblings(".Validform_checktip").remove()) : (3 == e || 4 == e) && 0 == t(this).siblings(".Validform_checktip").length && (t(this).parent().append("<span class='Validform_checktip' />"), t(this).parent().next().find(".Validform_checktip").remove())
                }), o.find("input[recheck]").each(function () {
                    if ("inited" == this.validform_inited)return !0;
                    this.validform_inited = "inited";
                    var e = t(this), n = o.find("input[name='" + t(this).attr("recheck") + "']");
                    n.bind("keyup", function () {
                        if (n.val() == e.val() && "" != n.val()) {
                            if (n.attr("tip") && n.attr("tip") == n.val())return !1;
                            e.trigger("blur")
                        }
                    }).bind("blur", function () {
                        if (n.val() != e.val() && "" != e.val()) {
                            if (e.attr("tip") && e.attr("tip") == e.val())return !1;
                            e.trigger("blur")
                        }
                    })
                }), o.find("[tip]").each(function () {
                    if ("inited" == this.validform_inited)return !0;
                    this.validform_inited = "inited";
                    var e = t(this).attr("tip"), n = t(this).attr("altercss");
                    t(this).focus(function () {
                        t(this).val() == e && (t(this).val(""), n && t(this).removeClass(n))
                    }).blur(function () {
                        "" === t.trim(t(this).val()) && (t(this).val(e), n && t(this).addClass(n))
                    })
                }), o.find(":checkbox[datatype],:radio[datatype]").each(function () {
                    if ("inited" == this.validform_inited)return !0;
                    this.validform_inited = "inited";
                    var e = t(this), n = e.attr("name");
                    o.find("[name='" + n + "']").filter(":checkbox,:radio").bind("click", function () {
                        setTimeout(function () {
                            e.trigger("blur")
                        }, 0)
                    })
                }), o.find("select[datatype][multiple]").bind("click", function () {
                    var e = t(this);
                    setTimeout(function () {
                        e.trigger("blur")
                    }, 0)
                }), u.util.usePlugin.call(o, n, e, i, r)
            }, usePlugin: function (e, n, i, r) {
                var o = this, e = e || {};
                if (o.find("input[plugin='swfupload']").length && "undefined" != typeof swfuploadhandler) {
                    var a = {
                        custom_settings: {
                            form: o, showmsg: function (t, e, r) {
                                u.util.showmsg.call(o, t, n, {
                                    obj: o.find("input[plugin='swfupload']"),
                                    type: e,
                                    sweep: i
                                })
                            }
                        }
                    };
                    a = t.extend(!0, {}, e.swfupload, a), o.find("input[plugin='swfupload']").each(function (e) {
                        return "inited" == this.validform_inited ? !0 : (this.validform_inited = "inited", t(this).val(""), void swfuploadhandler.init(a, e))
                    })
                }
                if (o.find("input[plugin='datepicker']").length && t.fn.datePicker && (e.datepicker = e.datepicker || {}, e.datepicker.format && (Date.format = e.datepicker.format, delete e.datepicker.format), e.datepicker.firstDayOfWeek && (Date.firstDayOfWeek = e.datepicker.firstDayOfWeek, delete e.datepicker.firstDayOfWeek), o.find("input[plugin='datepicker']").each(function (n) {
                        return "inited" == this.validform_inited ? !0 : (this.validform_inited = "inited", e.datepicker.callback && t(this).bind("dateSelected", function () {
                            var n = new Date(t.event._dpCache[this._dpId].getSelected()[0]).asString(Date.format);
                            e.datepicker.callback(n, this)
                        }), void t(this).datePicker(e.datepicker))
                    })), o.find("input[plugin*='passwordStrength']").length && t.fn.passwordStrength && (e.passwordstrength = e.passwordstrength || {}, e.passwordstrength.showmsg = function (t, e, r) {
                        u.util.showmsg.call(o, e, n, {obj: t, type: r, sweep: i})
                    }, o.find("input[plugin='passwordStrength']").each(function (n) {
                        return "inited" == this.validform_inited ? !0 : (this.validform_inited = "inited", void t(this).passwordStrength(e.passwordstrength))
                    })), "addRule" != r && e.jqtransform && t.fn.jqTransSelect) {
                    if ("true" == o[0].jqTransSelected)return;
                    o[0].jqTransSelected = "true";
                    var s = function (e) {
                        var n = t(".jqTransformSelectWrapper ul:visible");
                        n.each(function () {
                            var n = t(this).parents(".jqTransformSelectWrapper:first").find("select").get(0);
                            e && n.oLabel && n.oLabel.get(0) == e.get(0) || t(this).hide()
                        })
                    }, l = function (e) {
                        0 === t(e.target).parents(".jqTransformSelectWrapper").length && s(t(e.target))
                    }, c = function () {
                        t(document).mousedown(l)
                    };
                    e.jqtransform.selector ? (o.find(e.jqtransform.selector).filter('input:submit, input:reset, input[type="button"]').jqTransInputButton(), o.find(e.jqtransform.selector).filter("input:text, input:password").jqTransInputText(), o.find(e.jqtransform.selector).filter("input:checkbox").jqTransCheckBox(), o.find(e.jqtransform.selector).filter("input:radio").jqTransRadio(), o.find(e.jqtransform.selector).filter("textarea").jqTransTextarea(), o.find(e.jqtransform.selector).filter("select").length > 0 && (o.find(e.jqtransform.selector).filter("select").jqTransSelect(), c())) : o.jqTransform(), o.find(".jqTransformSelectWrapper").find("li a").click(function () {
                        t(this).parents(".jqTransformSelectWrapper").find("select").trigger("blur")
                    })
                }
            }, getNullmsg: function (t) {
                var e, n = this, i = /[\u4E00-\u9FA5\uf900-\ufa2da-zA-Z\s]+/g, r = t[0].settings.label || ".Validform_label";
                if (r = n.siblings(r).eq(0).text() || n.siblings().find(r).eq(0).text() || n.parent().siblings(r).eq(0).text() || n.parent().siblings().find(r).eq(0).text(), r = r.replace(/\s(?![a-zA-Z])/g, "").match(i), r = r ? r.join("") : [""], i = /\{(.+)\|(.+)\}/, e = t.data("tipmsg").s || l.s, "" != r) {
                    if (e = e.replace(/\{0\|(.+)\}/, r), n.attr("recheck"))return e = e.replace(/\{(.+)\}/, ""), n.attr("nullmsg", e), e
                } else e = n.is(":checkbox,:radio,select") ? e.replace(/\{0\|(.+)\}/, "") : e.replace(/\{0\|(.+)\}/, "$1");
                return e = n.is(":checkbox,:radio,select") ? e.replace(i, "$2") : e.replace(i, "$1"), n.attr("nullmsg", e), e
            }, getErrormsg: function (e, n, i) {
                var r, o = /^(.+?)((\d+)-(\d+))?$/, a = /^(.+?)(\d+)-(\d+)$/, s = /(.*?)\d+(.+?)\d+(.*)/, u = n.match(o);
                if ("recheck" == i)return r = e.data("tipmsg").reck || l.reck;
                var c = t.extend({}, l.w, e.data("tipmsg").w);
                if (u[0] in c)return e.data("tipmsg").w[u[0]] || l.w[u[0]];
                for (var d in c)if (-1 != d.indexOf(u[1]) && a.test(d))return r = (e.data("tipmsg").w[d] || l.w[d]).replace(s, "$1" + u[3] + "$2" + u[4] + "$3"), e.data("tipmsg").w[u[0]] = r, r;
                return e.data("tipmsg").def || l.def
            }, _regcheck: function (t, e, i, r) {
                var r = r, o = null, a = !1, s = /\/.+\//g, c = /^(.+?)(\d+)-(\d+)$/, d = 3;
                if (s.test(t)) {
                    var f = t.match(s)[0].slice(1, -1), p = t.replace(s, ""), h = RegExp(f, p);
                    a = h.test(e)
                } else if ("[object Function]" == u.util.toString.call(u.util.dataType[t]))a = u.util.dataType[t](e, i, r, u.util.dataType), a === !0 || a === n ? a = !0 : (o = a, a = !1); else {
                    if (!(t in u.util.dataType)) {
                        var m, g = t.match(c);
                        if (g) {
                            for (var v in u.util.dataType)if (m = v.match(c), m && g[1] === m[1]) {
                                var y = u.util.dataType[v].toString(), p = y.match(/\/[mgi]*/g)[1].replace("/", ""), b = new RegExp("\\{" + m[2] + "," + m[3] + "\\}", "g");
                                y = y.replace(/\/[mgi]*/g, "/").replace(b, "{" + g[2] + "," + g[3] + "}").replace(/^\//, "").replace(/\/$/, ""), u.util.dataType[t] = new RegExp(y, p);
                                break
                            }
                        } else a = !1, o = r.data("tipmsg").undef || l.undef
                    }
                    "[object RegExp]" == u.util.toString.call(u.util.dataType[t]) && (a = u.util.dataType[t].test(e))
                }
                if (a) {
                    if (d = 2, o = i.attr("sucmsg") || r.data("tipmsg").r || l.r, i.attr("recheck")) {
                        var x = r.find("input[name='" + i.attr("recheck") + "']:first");
                        e != x.val() && (a = !1, d = 3, o = i.attr("errormsg") || u.util.getErrormsg.call(i, r, t, "recheck"))
                    }
                } else o = o || i.attr("errormsg") || u.util.getErrormsg.call(i, r, t), u.util.isEmpty.call(i, e) && (o = i.attr("nullmsg") || u.util.getNullmsg.call(i, r));
                return {passed: a, type: d, info: o}
            }, regcheck: function (t, e, n) {
                var i = this, r = null;
                if ("ignore" === n.attr("ignore") && u.util.isEmpty.call(n, e))return n.data("cked") && (r = ""), {
                    passed: !0,
                    type: 4,
                    info: r
                };
                n.data("cked", "cked");
                for (var o, a = u.util.parseDatatype(t), s = 0; s < a.length; s++) {
                    for (var l = 0; l < a[s].length && (o = u.util._regcheck(a[s][l], e, n, i), o.passed); l++);
                    if (o.passed)break
                }
                return o
            }, parseDatatype: function (t) {
                var e = /\/.+?\/[mgi]*(?=(,|$|\||\s))|[\w\*-]+/g, n = t.match(e), i = t.replace(e, "").replace(/\s*/g, "").split(""), r = [], o = 0;
                r[0] = [], r[0].push(n[0]);
                for (var a = 0; a < i.length; a++)"|" == i[a] && (o++, r[o] = []), r[o].push(n[a + 1]);
                return r
            }, showmsg: function (e, r, o, l) {
                if (e != n && ("bycheck" != l || !o.sweep || (!o.obj || o.obj.is(".Validform_error")) && "function" != typeof r)) {
                    if (t.extend(o, {curform: this}), "function" == typeof r)return void r(e, o, u.util.cssctl);
                    (1 == r || "byajax" == l && 4 != r) && a.find(".Validform_info").html(e), (1 == r && "bycheck" != l && 2 != o.type || "byajax" == l && 4 != r) && (s = !1, a.find(".iframe").css("height", a.outerHeight()), a.show(), i(a, 100)), 2 == r && o.obj && (o.obj.parent().next().find(".Validform_checktip").html(e), u.util.cssctl(o.obj.parent().next().find(".Validform_checktip"), o.type)), 3 != r && 4 != r || !o.obj || (o.obj.siblings(".Validform_checktip").html(e), u.util.cssctl(o.obj.siblings(".Validform_checktip"), o.type))
                }
            }, cssctl: function (t, e) {
                switch (e) {
                    case 1:
                        t.removeClass("Validform_right Validform_wrong").addClass("Validform_checktip Validform_loading");
                        break;
                    case 2:
                        t.removeClass("Validform_wrong Validform_loading").addClass("Validform_checktip Validform_right");
                        break;
                    case 4:
                        t.removeClass("Validform_right Validform_wrong Validform_loading").addClass("Validform_checktip");
                        break;
                    default:
                        t.removeClass("Validform_right Validform_loading").addClass("Validform_checktip Validform_wrong")
                }
            }, check: function (e, n, i) {
                var r = e[0].settings, n = n || "", a = u.util.getValue.call(e, t(this));
                if (r.ignoreHidden && t(this).is(":hidden") || "dataIgnore" === t(this).data("dataIgnore"))return !0;
                if (r.dragonfly && !t(this).data("cked") && u.util.isEmpty.call(t(this), a) && "ignore" != t(this).attr("ignore"))return !1;
                var s = u.util.regcheck.call(e, t(this).attr("datatype"), a, t(this));
                if (a == this.validform_lastval && !t(this).attr("recheck") && "" == n)return s.passed ? !0 : !1;
                this.validform_lastval = a;
                var c;
                if (o = c = t(this), !s.passed)return u.util.abort.call(c[0]), i || (u.util.showmsg.call(e, s.info, r.tiptype, {
                    obj: t(this),
                    type: s.type,
                    sweep: r.tipSweep
                }, "bycheck"), !r.tipSweep && c.addClass("Validform_error")), !1;
                var d = t(this).attr("ajaxurl");
                if (d && !u.util.isEmpty.call(t(this), a) && !i) {
                    var f = t(this);
                    if (f[0].validform_subpost = "postform" == n ? "postform" : "", "posting" === f[0].validform_valid && a == f[0].validform_ckvalue)return "ajax";
                    f[0].validform_valid = "posting", f[0].validform_ckvalue = a, u.util.showmsg.call(e, e.data("tipmsg").c || l.c, r.tiptype, {
                        obj: f,
                        type: 1,
                        sweep: r.tipSweep
                    }, "bycheck"), u.util.abort.call(c[0]);
                    var p = t.extend(!0, {}, r.ajaxurl || {}), h = {
                        type: "POST",
                        cache: !1,
                        url: d,
                        data: "param=" + encodeURIComponent(a) + "&name=" + encodeURIComponent(t(this).attr("name")),
                        success: function (n) {
                            "y" === t.trim(n.status) ? (f[0].validform_valid = "true", n.info && f.attr("sucmsg", n.info), u.util.showmsg.call(e, f.attr("sucmsg") || e.data("tipmsg").r || l.r, r.tiptype, {
                                obj: f,
                                type: 2,
                                sweep: r.tipSweep
                            }, "bycheck"), c.removeClass("Validform_error"), o = null, "postform" == f[0].validform_subpost && e.trigger("submit")) : (f[0].validform_valid = n.info, u.util.showmsg.call(e, n.info, r.tiptype, {
                                obj: f,
                                type: 3,
                                sweep: r.tipSweep
                            }), c.addClass("Validform_error")), c[0].validform_ajax = null
                        },
                        error: function (t) {
                            if ("200" == t.status)return p.success("y" == t.responseText ? {status: "y"} : {
                                status: "n",
                                info: t.responseText
                            }), !1;
                            if ("abort" !== t.statusText) {
                                var n = "status: " + t.status + "; statusText: " + t.statusText;
                                u.util.showmsg.call(e, n, r.tiptype, {
                                    obj: f,
                                    type: 3,
                                    sweep: r.tipSweep
                                }), c.addClass("Validform_error")
                            }
                            return f[0].validform_valid = t.statusText, c[0].validform_ajax = null, !0
                        }
                    };
                    if (p.success) {
                        var m = p.success;
                        p.success = function (t) {
                            h.success(t), m(t, f)
                        }
                    }
                    if (p.error) {
                        var g = p.error;
                        p.error = function (t) {
                            h.error(t) && g(t, f)
                        }
                    }
                    return p = t.extend({}, h, p, {dataType: "json"}), c[0].validform_ajax = t.ajax(p), "ajax"
                }
                return d && u.util.isEmpty.call(t(this), a) && (u.util.abort.call(c[0]), c[0].validform_valid = "true"), i || (u.util.showmsg.call(e, s.info, r.tiptype, {
                    obj: t(this),
                    type: s.type,
                    sweep: r.tipSweep
                }, "bycheck"), c.removeClass("Validform_error")), o = null, !0
            }, submitForm: function (e, n, i, r, a) {
                var s = this;
                if ("posting" === s[0].validform_status)return !1;
                if (e.postonce && "posted" === s[0].validform_status)return !1;
                var c = e.beforeCheck && e.beforeCheck(s);
                if (c === !1)return !1;
                var d, f = !0;
                if (s.find("[datatype]").each(function () {
                        if (n)return !1;
                        if (e.ignoreHidden && t(this).is(":hidden") || "dataIgnore" === t(this).data("dataIgnore"))return !0;
                        var i, r = u.util.getValue.call(s, t(this));
                        if (o = i = t(this), d = u.util.regcheck.call(s, t(this).attr("datatype"), r, t(this)), !d.passed)return u.util.showmsg.call(s, d.info, e.tiptype, {
                            obj: t(this),
                            type: d.type,
                            sweep: e.tipSweep
                        }), i.addClass("Validform_error"), e.showAllError ? (f && (f = !1), !0) : (i.focus(), f = !1, !1);
                        if (t(this).attr("ajaxurl") && !u.util.isEmpty.call(t(this), r)) {
                            if ("true" !== this.validform_valid) {
                                var a = t(this);
                                return u.util.showmsg.call(s, s.data("tipmsg").v || l.v, e.tiptype, {
                                    obj: a,
                                    type: 3,
                                    sweep: e.tipSweep
                                }), i.addClass("Validform_error"), a.trigger("blur", ["postform"]), e.showAllError ? (f && (f = !1), !0) : (f = !1, !1)
                            }
                        } else t(this).attr("ajaxurl") && u.util.isEmpty.call(t(this), r) && (u.util.abort.call(this), this.validform_valid = "true");
                        u.util.showmsg.call(s, d.info, e.tiptype, {
                            obj: t(this),
                            type: d.type,
                            sweep: e.tipSweep
                        }), i.removeClass("Validform_error"), o = null
                    }), e.showAllError && s.find(".Validform_error:first").focus(), f) {
                    var p = e.beforeSubmit && e.beforeSubmit(s);
                    if (p === !1)return !1;
                    if (s[0].validform_status = "posting", !e.ajaxPost && "ajaxPost" !== r) {
                        e.postonce || (s[0].validform_status = "normal");
                        var i = i || e.url;
                        return i && s.attr("action", i), e.callback && e.callback(s)
                    }
                    var h = t.extend(!0, {}, e.ajaxpost || {});
                    if (h.url = i || h.url || e.url || s.attr("action"), u.util.showmsg.call(s, s.data("tipmsg").p || l.p, e.tiptype, {
                            obj: s,
                            type: 1,
                            sweep: e.tipSweep
                        }, "byajax"), a ? h.async = !1 : a === !1 && (h.async = !0), h.success) {
                        var m = h.success;
                        h.success = function (n) {
                            e.callback && e.callback(n), s[0].validform_ajax = null, s[0].validform_status = "y" === t.trim(n.status) ? "posted" : "normal", m(n, s)
                        }
                    }
                    if (h.error) {
                        var g = h.error;
                        h.error = function (t) {
                            e.callback && e.callback(t), s[0].validform_status = "normal", s[0].validform_ajax = null, g(t, s)
                        }
                    }
                    var v = {
                        type: "POST", async: !0, data: s.serializeArray(), success: function (n) {
                            "y" === t.trim(n.status) ? (s[0].validform_status = "posted", u.util.showmsg.call(s, n.info, e.tiptype, {
                                obj: s,
                                type: 2,
                                sweep: e.tipSweep
                            }, "byajax")) : (s[0].validform_status = "normal", u.util.showmsg.call(s, n.info, e.tiptype, {
                                obj: s,
                                type: 3,
                                sweep: e.tipSweep
                            }, "byajax")), e.callback && e.callback(n), s[0].validform_ajax = null
                        }, error: function (t) {
                            var n = "status: " + t.status + "; statusText: " + t.statusText;
                            u.util.showmsg.call(s, n, e.tiptype, {
                                obj: s,
                                type: 3,
                                sweep: e.tipSweep
                            }, "byajax"), e.callback && e.callback(t), s[0].validform_status = "normal", s[0].validform_ajax = null
                        }
                    };
                    h = t.extend({}, v, h, {dataType: "json"}), s[0].validform_ajax = t.ajax(h)
                }
                return !1
            }, resetForm: function () {
                var t = this;
                t.each(function () {
                    this.reset && this.reset(), this.validform_status = "normal"
                }), t.find(".Validform_right").text(""), t.find(".passwordStrength").children().removeClass("bgStrength"), t.find(".Validform_checktip").removeClass("Validform_wrong Validform_right Validform_loading"), t.find(".Validform_error").removeClass("Validform_error"), t.find("[datatype]").removeData("cked").removeData("dataIgnore").each(function () {
                    this.validform_lastval = null
                }), t.eq(0).find("input:first").focus()
            }, abort: function () {
                this.validform_ajax && this.validform_ajax.abort()
            }
        }, t.Datatype = u.util.dataType, u.prototype = {
            dataType: u.util.dataType, eq: function (e) {
                var n = this;
                return e >= n.forms.length ? null : (e in n.objects || (n.objects[e] = new u(t(n.forms[e]).get(), {}, !0)), n.objects[e])
            }, resetStatus: function () {
                var e = this;
                return t(e.forms).each(function () {
                    this.validform_status = "normal"
                }), this
            }, setStatus: function (e) {
                var n = this;
                return t(n.forms).each(function () {
                    this.validform_status = e || "posting"
                }), this
            }, getStatus: function () {
                var e = this, n = t(e.forms)[0].validform_status;
                return n
            }, ignore: function (e) {
                var n = this, e = e || "[datatype]";
                return t(n.forms).find(e).each(function () {
                    t(this).data("dataIgnore", "dataIgnore").removeClass("Validform_error")
                }), this
            }, unignore: function (e) {
                var n = this, e = e || "[datatype]";
                return t(n.forms).find(e).each(function () {
                    t(this).removeData("dataIgnore")
                }), this
            }, addRule: function (e) {
                for (var n = this, e = e || [], i = 0; i < e.length; i++) {
                    var r = t(n.forms).find(e[i].ele);
                    for (var o in e[i])"ele" !== o && r.attr(o, e[i][o])
                }
                return t(n.forms).each(function () {
                    var e = t(this);
                    u.util.enhance.call(e, this.settings.tiptype, this.settings.usePlugin, this.settings.tipSweep, "addRule")
                }), this
            }, ajaxPost: function (e, n, i) {
                var o = this;
                return t(o.forms).each(function () {
                    (1 == this.settings.tiptype || 2 == this.settings.tiptype || 3 == this.settings.tiptype) && r(), u.util.submitForm.call(t(o.forms[0]), this.settings, e, i, "ajaxPost", n)
                }), this
            }, submitForm: function (e, i) {
                var r = this;
                return t(r.forms).each(function () {
                    var r = u.util.submitForm.call(t(this), this.settings, e, i);
                    r === n && (r = !0), r === !0 && this.submit()
                }), this
            }, resetForm: function () {
                var e = this;
                return u.util.resetForm.call(t(e.forms)), this
            }, abort: function () {
                var e = this;
                return t(e.forms).each(function () {
                    u.util.abort.call(this)
                }), this
            }, check: function (e, n) {
                var n = n || "[datatype]", i = this, r = t(i.forms), o = !0;
                return r.find(n).each(function () {
                    u.util.check.call(this, r, "", e) || (o = !1)
                }), o
            }, config: function (e) {
                var n = this;
                return e = e || {}, t(n.forms).each(function () {
                    var n = t(this);
                    this.settings = t.extend(!0, this.settings, e), u.util.enhance.call(n, this.settings.tiptype, this.settings.usePlugin, this.settings.tipSweep)
                }), this
            }
        }, t.fn.Validform = function (t) {
            return new u(this, t)
        }, t.Showmsg = function (t) {
            r(), u.util.showmsg.call(e, t, 1, {})
        }, t.Hidemsg = function () {
            a.hide(), s = !0
        }
    }(i, window)
}, mok["lib/jquery.qrcode.min"] = function (t, e, n) {
    var i = t("lib/jquery.min");
    !function (t) {
        t.fn.qrcode = function (e) {
            function n(t) {
                this.mode = l, this.data = t
            }

            function r(t, e) {
                this.typeNumber = t, this.errorCorrectLevel = e, this.modules = null, this.moduleCount = 0, this.dataCache = null, this.dataList = []
            }

            function o(t, e) {
                if (void 0 == t.length)throw Error(t.length + "/" + e);
                for (var n = 0; n < t.length && 0 == t[n];)n++;
                this.num = Array(t.length - n + e);
                for (var i = 0; i < t.length - n; i++)this.num[i] = t[i + n]
            }

            function a(t, e) {
                this.totalCount = t, this.dataCount = e
            }

            function s() {
                this.buffer = [], this.length = 0
            }

            var l;
            n.prototype = {
                getLength: function () {
                    return this.data.length
                }, write: function (t) {
                    for (var e = 0; e < this.data.length; e++)t.put(this.data.charCodeAt(e), 8)
                }
            }, r.prototype = {
                addData: function (t) {
                    this.dataList.push(new n(t)), this.dataCache = null
                }, isDark: function (t, e) {
                    if (0 > t || this.moduleCount <= t || 0 > e || this.moduleCount <= e)throw Error(t + "," + e);
                    return this.modules[t][e]
                }, getModuleCount: function () {
                    return this.moduleCount
                }, make: function () {
                    if (1 > this.typeNumber) {
                        for (var t = 1, t = 1; 40 > t; t++) {
                            for (var e = a.getRSBlocks(t, this.errorCorrectLevel), n = new s, i = 0, r = 0; r < e.length; r++)i += e[r].dataCount;
                            for (r = 0; r < this.dataList.length; r++)e = this.dataList[r], n.put(e.mode, 4), n.put(e.getLength(), u.getLengthInBits(e.mode, t)), e.write(n);
                            if (n.getLengthInBits() <= 8 * i)break
                        }
                        this.typeNumber = t
                    }
                    this.makeImpl(!1, this.getBestMaskPattern())
                }, makeImpl: function (t, e) {
                    this.moduleCount = 4 * this.typeNumber + 17, this.modules = Array(this.moduleCount);
                    for (var n = 0; n < this.moduleCount; n++) {
                        this.modules[n] = Array(this.moduleCount);
                        for (var i = 0; i < this.moduleCount; i++)this.modules[n][i] = null
                    }
                    this.setupPositionProbePattern(0, 0), this.setupPositionProbePattern(this.moduleCount - 7, 0), this.setupPositionProbePattern(0, this.moduleCount - 7), this.setupPositionAdjustPattern(), this.setupTimingPattern(), this.setupTypeInfo(t, e), 7 <= this.typeNumber && this.setupTypeNumber(t), null == this.dataCache && (this.dataCache = r.createData(this.typeNumber, this.errorCorrectLevel, this.dataList)), this.mapData(this.dataCache, e)
                }, setupPositionProbePattern: function (t, e) {
                    for (var n = -1; 7 >= n; n++)if (!(-1 >= t + n || this.moduleCount <= t + n))for (var i = -1; 7 >= i; i++)-1 >= e + i || this.moduleCount <= e + i || (this.modules[t + n][e + i] = n >= 0 && 6 >= n && (0 == i || 6 == i) || i >= 0 && 6 >= i && (0 == n || 6 == n) || n >= 2 && 4 >= n && i >= 2 && 4 >= i ? !0 : !1)
                }, getBestMaskPattern: function () {
                    for (var t = 0, e = 0, n = 0; 8 > n; n++) {
                        this.makeImpl(!0, n);
                        var i = u.getLostPoint(this);
                        (0 == n || t > i) && (t = i, e = n)
                    }
                    return e
                }, createMovieClip: function (t, e, n) {
                    for (t = t.createEmptyMovieClip(e, n), this.make(), e = 0; e < this.modules.length; e++)for (var n = 1 * e, i = 0; i < this.modules[e].length; i++) {
                        var r = 1 * i;
                        this.modules[e][i] && (t.beginFill(0, 100), t.moveTo(r, n), t.lineTo(r + 1, n), t.lineTo(r + 1, n + 1), t.lineTo(r, n + 1), t.endFill())
                    }
                    return t
                }, setupTimingPattern: function () {
                    for (var t = 8; t < this.moduleCount - 8; t++)null == this.modules[t][6] && (this.modules[t][6] = 0 == t % 2);
                    for (t = 8; t < this.moduleCount - 8; t++)null == this.modules[6][t] && (this.modules[6][t] = 0 == t % 2)
                }, setupPositionAdjustPattern: function () {
                    for (var t = u.getPatternPosition(this.typeNumber), e = 0; e < t.length; e++)for (var n = 0; n < t.length; n++) {
                        var i = t[e], r = t[n];
                        if (null == this.modules[i][r])for (var o = -2; 2 >= o; o++)for (var a = -2; 2 >= a; a++)this.modules[i + o][r + a] = -2 == o || 2 == o || -2 == a || 2 == a || 0 == o && 0 == a ? !0 : !1
                    }
                }, setupTypeNumber: function (t) {
                    for (var e = u.getBCHTypeNumber(this.typeNumber), n = 0; 18 > n; n++) {
                        var i = !t && 1 == (e >> n & 1);
                        this.modules[Math.floor(n / 3)][n % 3 + this.moduleCount - 8 - 3] = i
                    }
                    for (n = 0; 18 > n; n++)i = !t && 1 == (e >> n & 1), this.modules[n % 3 + this.moduleCount - 8 - 3][Math.floor(n / 3)] = i
                }, setupTypeInfo: function (t, e) {
                    for (var n = u.getBCHTypeInfo(this.errorCorrectLevel << 3 | e), i = 0; 15 > i; i++) {
                        var r = !t && 1 == (n >> i & 1);
                        6 > i ? this.modules[i][8] = r : 8 > i ? this.modules[i + 1][8] = r : this.modules[this.moduleCount - 15 + i][8] = r
                    }
                    for (i = 0; 15 > i; i++)r = !t && 1 == (n >> i & 1), 8 > i ? this.modules[8][this.moduleCount - i - 1] = r : 9 > i ? this.modules[8][15 - i - 1 + 1] = r : this.modules[8][15 - i - 1] = r;
                    this.modules[this.moduleCount - 8][8] = !t
                }, mapData: function (t, e) {
                    for (var n = -1, i = this.moduleCount - 1, r = 7, o = 0, a = this.moduleCount - 1; a > 0; a -= 2)for (6 == a && a--; ;) {
                        for (var s = 0; 2 > s; s++)if (null == this.modules[i][a - s]) {
                            var l = !1;
                            o < t.length && (l = 1 == (t[o] >>> r & 1)), u.getMask(e, i, a - s) && (l = !l), this.modules[i][a - s] = l, r--, -1 == r && (o++, r = 7)
                        }
                        if (i += n, 0 > i || this.moduleCount <= i) {
                            i -= n, n = -n;
                            break
                        }
                    }
                }
            }, r.PAD0 = 236, r.PAD1 = 17, r.createData = function (t, e, n) {
                for (var e = a.getRSBlocks(t, e), i = new s, o = 0; o < n.length; o++) {
                    var l = n[o];
                    i.put(l.mode, 4), i.put(l.getLength(), u.getLengthInBits(l.mode, t)), l.write(i)
                }
                for (o = t = 0; o < e.length; o++)t += e[o].dataCount;
                if (i.getLengthInBits() > 8 * t)throw Error("code length overflow. (" + i.getLengthInBits() + ">" + 8 * t + ")");
                for (i.getLengthInBits() + 4 <= 8 * t && i.put(0, 4); 0 != i.getLengthInBits() % 8;)i.putBit(!1);
                for (; !(i.getLengthInBits() >= 8 * t) && (i.put(r.PAD0, 8), !(i.getLengthInBits() >= 8 * t));)i.put(r.PAD1, 8);
                return r.createBytes(i, e)
            }, r.createBytes = function (t, e) {
                for (var n = 0, i = 0, r = 0, a = Array(e.length), s = Array(e.length), l = 0; l < e.length; l++) {
                    var c = e[l].dataCount, d = e[l].totalCount - c, i = Math.max(i, c), r = Math.max(r, d);
                    a[l] = Array(c);
                    for (var f = 0; f < a[l].length; f++)a[l][f] = 255 & t.buffer[f + n];
                    for (n += c, f = u.getErrorCorrectPolynomial(d), c = new o(a[l], f.getLength() - 1).mod(f), s[l] = Array(f.getLength() - 1), f = 0; f < s[l].length; f++)d = f + c.getLength() - s[l].length, s[l][f] = d >= 0 ? c.get(d) : 0
                }
                for (f = l = 0; f < e.length; f++)l += e[f].totalCount;
                for (n = Array(l), f = c = 0; i > f; f++)for (l = 0; l < e.length; l++)f < a[l].length && (n[c++] = a[l][f]);
                for (f = 0; r > f; f++)for (l = 0; l < e.length; l++)f < s[l].length && (n[c++] = s[l][f]);
                return n
            }, l = 4;
            for (var u = {
                PATTERN_POSITION_TABLE: [[], [6, 18], [6, 22], [6, 26], [6, 30], [6, 34], [6, 22, 38], [6, 24, 42], [6, 26, 46], [6, 28, 50], [6, 30, 54], [6, 32, 58], [6, 34, 62], [6, 26, 46, 66], [6, 26, 48, 70], [6, 26, 50, 74], [6, 30, 54, 78], [6, 30, 56, 82], [6, 30, 58, 86], [6, 34, 62, 90], [6, 28, 50, 72, 94], [6, 26, 50, 74, 98], [6, 30, 54, 78, 102], [6, 28, 54, 80, 106], [6, 32, 58, 84, 110], [6, 30, 58, 86, 114], [6, 34, 62, 90, 118], [6, 26, 50, 74, 98, 122], [6, 30, 54, 78, 102, 126], [6, 26, 52, 78, 104, 130], [6, 30, 56, 82, 108, 134], [6, 34, 60, 86, 112, 138], [6, 30, 58, 86, 114, 142], [6, 34, 62, 90, 118, 146], [6, 30, 54, 78, 102, 126, 150], [6, 24, 50, 76, 102, 128, 154], [6, 28, 54, 80, 106, 132, 158], [6, 32, 58, 84, 110, 136, 162], [6, 26, 54, 82, 110, 138, 166], [6, 30, 58, 86, 114, 142, 170]],
                G15: 1335,
                G18: 7973,
                G15_MASK: 21522,
                getBCHTypeInfo: function (t) {
                    for (var e = t << 10; 0 <= u.getBCHDigit(e) - u.getBCHDigit(u.G15);)e ^= u.G15 << u.getBCHDigit(e) - u.getBCHDigit(u.G15);
                    return (t << 10 | e) ^ u.G15_MASK
                },
                getBCHTypeNumber: function (t) {
                    for (var e = t << 12; 0 <= u.getBCHDigit(e) - u.getBCHDigit(u.G18);)e ^= u.G18 << u.getBCHDigit(e) - u.getBCHDigit(u.G18);
                    return t << 12 | e
                },
                getBCHDigit: function (t) {
                    for (var e = 0; 0 != t;)e++, t >>>= 1;
                    return e
                },
                getPatternPosition: function (t) {
                    return u.PATTERN_POSITION_TABLE[t - 1]
                },
                getMask: function (t, e, n) {
                    switch (t) {
                        case 0:
                            return 0 == (e + n) % 2;
                        case 1:
                            return 0 == e % 2;
                        case 2:
                            return 0 == n % 3;
                        case 3:
                            return 0 == (e + n) % 3;
                        case 4:
                            return 0 == (Math.floor(e / 2) + Math.floor(n / 3)) % 2;
                        case 5:
                            return 0 == e * n % 2 + e * n % 3;
                        case 6:
                            return 0 == (e * n % 2 + e * n % 3) % 2;

                        case 7:
                            return 0 == (e * n % 3 + (e + n) % 2) % 2;
                        default:
                            throw Error("bad maskPattern:" + t)
                    }
                },
                getErrorCorrectPolynomial: function (t) {
                    for (var e = new o([1], 0), n = 0; t > n; n++)e = e.multiply(new o([1, c.gexp(n)], 0));
                    return e
                },
                getLengthInBits: function (t, e) {
                    if (e >= 1 && 10 > e)switch (t) {
                        case 1:
                            return 10;
                        case 2:
                            return 9;
                        case l:
                            return 8;
                        case 8:
                            return 8;
                        default:
                            throw Error("mode:" + t)
                    } else if (27 > e)switch (t) {
                        case 1:
                            return 12;
                        case 2:
                            return 11;
                        case l:
                            return 16;
                        case 8:
                            return 10;
                        default:
                            throw Error("mode:" + t)
                    } else {
                        if (!(41 > e))throw Error("type:" + e);
                        switch (t) {
                            case 1:
                                return 14;
                            case 2:
                                return 13;
                            case l:
                                return 16;
                            case 8:
                                return 12;
                            default:
                                throw Error("mode:" + t)
                        }
                    }
                },
                getLostPoint: function (t) {
                    for (var e = t.getModuleCount(), n = 0, i = 0; e > i; i++)for (var r = 0; e > r; r++) {
                        for (var o = 0, a = t.isDark(i, r), s = -1; 1 >= s; s++)if (!(0 > i + s || i + s >= e))for (var l = -1; 1 >= l; l++)0 > r + l || r + l >= e || 0 == s && 0 == l || a == t.isDark(i + s, r + l) && o++;
                        o > 5 && (n += 3 + o - 5)
                    }
                    for (i = 0; e - 1 > i; i++)for (r = 0; e - 1 > r; r++)o = 0, t.isDark(i, r) && o++, t.isDark(i + 1, r) && o++, t.isDark(i, r + 1) && o++, t.isDark(i + 1, r + 1) && o++, (0 == o || 4 == o) && (n += 3);
                    for (i = 0; e > i; i++)for (r = 0; e - 6 > r; r++)t.isDark(i, r) && !t.isDark(i, r + 1) && t.isDark(i, r + 2) && t.isDark(i, r + 3) && t.isDark(i, r + 4) && !t.isDark(i, r + 5) && t.isDark(i, r + 6) && (n += 40);
                    for (r = 0; e > r; r++)for (i = 0; e - 6 > i; i++)t.isDark(i, r) && !t.isDark(i + 1, r) && t.isDark(i + 2, r) && t.isDark(i + 3, r) && t.isDark(i + 4, r) && !t.isDark(i + 5, r) && t.isDark(i + 6, r) && (n += 40);
                    for (r = o = 0; e > r; r++)for (i = 0; e > i; i++)t.isDark(i, r) && o++;
                    return t = Math.abs(100 * o / e / e - 50) / 5, n + 10 * t
                }
            }, c = {
                glog: function (t) {
                    if (1 > t)throw Error("glog(" + t + ")");
                    return c.LOG_TABLE[t]
                }, gexp: function (t) {
                    for (; 0 > t;)t += 255;
                    for (; t >= 256;)t -= 255;
                    return c.EXP_TABLE[t]
                }, EXP_TABLE: Array(256), LOG_TABLE: Array(256)
            }, d = 0; 8 > d; d++)c.EXP_TABLE[d] = 1 << d;
            for (d = 8; 256 > d; d++)c.EXP_TABLE[d] = c.EXP_TABLE[d - 4] ^ c.EXP_TABLE[d - 5] ^ c.EXP_TABLE[d - 6] ^ c.EXP_TABLE[d - 8];
            for (d = 0; 255 > d; d++)c.LOG_TABLE[c.EXP_TABLE[d]] = d;
            return o.prototype = {
                get: function (t) {
                    return this.num[t]
                }, getLength: function () {
                    return this.num.length
                }, multiply: function (t) {
                    for (var e = Array(this.getLength() + t.getLength() - 1), n = 0; n < this.getLength(); n++)for (var i = 0; i < t.getLength(); i++)e[n + i] ^= c.gexp(c.glog(this.get(n)) + c.glog(t.get(i)));
                    return new o(e, 0)
                }, mod: function (t) {
                    if (0 > this.getLength() - t.getLength())return this;
                    for (var e = c.glog(this.get(0)) - c.glog(t.get(0)), n = Array(this.getLength()), i = 0; i < this.getLength(); i++)n[i] = this.get(i);
                    for (i = 0; i < t.getLength(); i++)n[i] ^= c.gexp(c.glog(t.get(i)) + e);
                    return new o(n, 0).mod(t)
                }
            }, a.RS_BLOCK_TABLE = [[1, 26, 19], [1, 26, 16], [1, 26, 13], [1, 26, 9], [1, 44, 34], [1, 44, 28], [1, 44, 22], [1, 44, 16], [1, 70, 55], [1, 70, 44], [2, 35, 17], [2, 35, 13], [1, 100, 80], [2, 50, 32], [2, 50, 24], [4, 25, 9], [1, 134, 108], [2, 67, 43], [2, 33, 15, 2, 34, 16], [2, 33, 11, 2, 34, 12], [2, 86, 68], [4, 43, 27], [4, 43, 19], [4, 43, 15], [2, 98, 78], [4, 49, 31], [2, 32, 14, 4, 33, 15], [4, 39, 13, 1, 40, 14], [2, 121, 97], [2, 60, 38, 2, 61, 39], [4, 40, 18, 2, 41, 19], [4, 40, 14, 2, 41, 15], [2, 146, 116], [3, 58, 36, 2, 59, 37], [4, 36, 16, 4, 37, 17], [4, 36, 12, 4, 37, 13], [2, 86, 68, 2, 87, 69], [4, 69, 43, 1, 70, 44], [6, 43, 19, 2, 44, 20], [6, 43, 15, 2, 44, 16], [4, 101, 81], [1, 80, 50, 4, 81, 51], [4, 50, 22, 4, 51, 23], [3, 36, 12, 8, 37, 13], [2, 116, 92, 2, 117, 93], [6, 58, 36, 2, 59, 37], [4, 46, 20, 6, 47, 21], [7, 42, 14, 4, 43, 15], [4, 133, 107], [8, 59, 37, 1, 60, 38], [8, 44, 20, 4, 45, 21], [12, 33, 11, 4, 34, 12], [3, 145, 115, 1, 146, 116], [4, 64, 40, 5, 65, 41], [11, 36, 16, 5, 37, 17], [11, 36, 12, 5, 37, 13], [5, 109, 87, 1, 110, 88], [5, 65, 41, 5, 66, 42], [5, 54, 24, 7, 55, 25], [11, 36, 12], [5, 122, 98, 1, 123, 99], [7, 73, 45, 3, 74, 46], [15, 43, 19, 2, 44, 20], [3, 45, 15, 13, 46, 16], [1, 135, 107, 5, 136, 108], [10, 74, 46, 1, 75, 47], [1, 50, 22, 15, 51, 23], [2, 42, 14, 17, 43, 15], [5, 150, 120, 1, 151, 121], [9, 69, 43, 4, 70, 44], [17, 50, 22, 1, 51, 23], [2, 42, 14, 19, 43, 15], [3, 141, 113, 4, 142, 114], [3, 70, 44, 11, 71, 45], [17, 47, 21, 4, 48, 22], [9, 39, 13, 16, 40, 14], [3, 135, 107, 5, 136, 108], [3, 67, 41, 13, 68, 42], [15, 54, 24, 5, 55, 25], [15, 43, 15, 10, 44, 16], [4, 144, 116, 4, 145, 117], [17, 68, 42], [17, 50, 22, 6, 51, 23], [19, 46, 16, 6, 47, 17], [2, 139, 111, 7, 140, 112], [17, 74, 46], [7, 54, 24, 16, 55, 25], [34, 37, 13], [4, 151, 121, 5, 152, 122], [4, 75, 47, 14, 76, 48], [11, 54, 24, 14, 55, 25], [16, 45, 15, 14, 46, 16], [6, 147, 117, 4, 148, 118], [6, 73, 45, 14, 74, 46], [11, 54, 24, 16, 55, 25], [30, 46, 16, 2, 47, 17], [8, 132, 106, 4, 133, 107], [8, 75, 47, 13, 76, 48], [7, 54, 24, 22, 55, 25], [22, 45, 15, 13, 46, 16], [10, 142, 114, 2, 143, 115], [19, 74, 46, 4, 75, 47], [28, 50, 22, 6, 51, 23], [33, 46, 16, 4, 47, 17], [8, 152, 122, 4, 153, 123], [22, 73, 45, 3, 74, 46], [8, 53, 23, 26, 54, 24], [12, 45, 15, 28, 46, 16], [3, 147, 117, 10, 148, 118], [3, 73, 45, 23, 74, 46], [4, 54, 24, 31, 55, 25], [11, 45, 15, 31, 46, 16], [7, 146, 116, 7, 147, 117], [21, 73, 45, 7, 74, 46], [1, 53, 23, 37, 54, 24], [19, 45, 15, 26, 46, 16], [5, 145, 115, 10, 146, 116], [19, 75, 47, 10, 76, 48], [15, 54, 24, 25, 55, 25], [23, 45, 15, 25, 46, 16], [13, 145, 115, 3, 146, 116], [2, 74, 46, 29, 75, 47], [42, 54, 24, 1, 55, 25], [23, 45, 15, 28, 46, 16], [17, 145, 115], [10, 74, 46, 23, 75, 47], [10, 54, 24, 35, 55, 25], [19, 45, 15, 35, 46, 16], [17, 145, 115, 1, 146, 116], [14, 74, 46, 21, 75, 47], [29, 54, 24, 19, 55, 25], [11, 45, 15, 46, 46, 16], [13, 145, 115, 6, 146, 116], [14, 74, 46, 23, 75, 47], [44, 54, 24, 7, 55, 25], [59, 46, 16, 1, 47, 17], [12, 151, 121, 7, 152, 122], [12, 75, 47, 26, 76, 48], [39, 54, 24, 14, 55, 25], [22, 45, 15, 41, 46, 16], [6, 151, 121, 14, 152, 122], [6, 75, 47, 34, 76, 48], [46, 54, 24, 10, 55, 25], [2, 45, 15, 64, 46, 16], [17, 152, 122, 4, 153, 123], [29, 74, 46, 14, 75, 47], [49, 54, 24, 10, 55, 25], [24, 45, 15, 46, 46, 16], [4, 152, 122, 18, 153, 123], [13, 74, 46, 32, 75, 47], [48, 54, 24, 14, 55, 25], [42, 45, 15, 32, 46, 16], [20, 147, 117, 4, 148, 118], [40, 75, 47, 7, 76, 48], [43, 54, 24, 22, 55, 25], [10, 45, 15, 67, 46, 16], [19, 148, 118, 6, 149, 119], [18, 75, 47, 31, 76, 48], [34, 54, 24, 34, 55, 25], [20, 45, 15, 61, 46, 16]], a.getRSBlocks = function (t, e) {
                var n = a.getRsBlockTable(t, e);
                if (void 0 == n)throw Error("bad rs block @ typeNumber:" + t + "/errorCorrectLevel:" + e);
                for (var i = n.length / 3, r = [], o = 0; i > o; o++)for (var s = n[3 * o + 0], l = n[3 * o + 1], u = n[3 * o + 2], c = 0; s > c; c++)r.push(new a(l, u));
                return r
            }, a.getRsBlockTable = function (t, e) {
                switch (e) {
                    case 1:
                        return a.RS_BLOCK_TABLE[4 * (t - 1) + 0];
                    case 0:
                        return a.RS_BLOCK_TABLE[4 * (t - 1) + 1];
                    case 3:
                        return a.RS_BLOCK_TABLE[4 * (t - 1) + 2];
                    case 2:
                        return a.RS_BLOCK_TABLE[4 * (t - 1) + 3]
                }
            }, s.prototype = {
                get: function (t) {
                    return 1 == (this.buffer[Math.floor(t / 8)] >>> 7 - t % 8 & 1)
                }, put: function (t, e) {
                    for (var n = 0; e > n; n++)this.putBit(1 == (t >>> e - n - 1 & 1))
                }, getLengthInBits: function () {
                    return this.length
                }, putBit: function (t) {
                    var e = Math.floor(this.length / 8);
                    this.buffer.length <= e && this.buffer.push(0), t && (this.buffer[e] |= 128 >>> this.length % 8), this.length++
                }
            }, "string" == typeof e && (e = {text: e}), e = t.extend({}, {
                render: "canvas",
                width: 256,
                height: 256,
                typeNumber: -1,
                correctLevel: 2,
                background: "#ffffff",
                foreground: "#000000"
            }, e), this.each(function () {
                var n;
                if ("canvas" == e.render) {
                    n = new r(e.typeNumber, e.correctLevel), n.addData(e.text), n.make();
                    var o = document.createElement("canvas");
                    o.width = e.width, o.height = e.height;
                    for (var a = o.getContext("2d"), s = e.width / n.getModuleCount(), l = e.height / n.getModuleCount(), u = 0; u < n.getModuleCount(); u++)for (var c = 0; c < n.getModuleCount(); c++) {
                        a.fillStyle = n.isDark(u, c) ? e.foreground : e.background;
                        var d = Math.ceil((c + 1) * s) - Math.floor(c * s), f = Math.ceil((u + 1) * s) - Math.floor(u * s);
                        a.fillRect(Math.round(c * s), Math.round(u * l), d, f)
                    }
                } else for (n = new r(e.typeNumber, e.correctLevel), n.addData(e.text), n.make(), o = t("<table></table>").css("width", e.width + "px").css("height", e.height + "px").css("border", "0px").css("border-collapse", "collapse").css("background-color", e.background), a = e.width / n.getModuleCount(), s = e.height / n.getModuleCount(), l = 0; l < n.getModuleCount(); l++)for (u = t("<tr></tr>").css("height", s + "px").appendTo(o), c = 0; c < n.getModuleCount(); c++)t("<td></td>").css("width", a + "px").css("background-color", n.isDark(l, c) ? e.foreground : e.background).appendTo(u);
                n = o, i(n).appendTo(this)
            })
        }
    }(i)
}, mok["lib/jquery.placeholder"] = function (t, e, n) {
    var i = t("lib/jquery.min");
    !function (t, e, n) {
        function i(t) {
            var e = {}, i = /^jQuery\d+$/;
            return n.each(t.attributes, function (t, n) {
                n.specified && !i.test(n.name) && (e[n.name] = n.value)
            }), e
        }

        function r(t, e) {
            var i = this, r = n(i);
            if (i.value == r.attr("placeholder") && r.hasClass("placeholder"))if (r.data("placeholder-password")) {
                if (r = r.hide().next().show().attr("id", r.removeAttr("id").data("placeholder-id")), t === !0)return r[0].value = e;
                r.focus()
            } else i.value = "", r.removeClass("placeholder"), i == a() && i.select()
        }

        function o() {
            var t, e = this, o = n(e), a = this.id;
            if ("" == e.value) {
                if ("password" == e.type) {
                    if (!o.data("placeholder-textinput")) {
                        try {
                            t = o.clone().attr({type: "text"})
                        } catch (s) {
                            t = n("<input>").attr(n.extend(i(this), {type: "text"}))
                        }
                        t.removeAttr("name").data({
                            "placeholder-password": o,
                            "placeholder-id": a
                        }).bind("focus.placeholder", r), o.data({
                            "placeholder-textinput": t,
                            "placeholder-id": a
                        }).before(t)
                    }
                    o = o.removeAttr("id").hide().prev().attr("id", a).show()
                }
                o.addClass("placeholder"), o[0].value = o.attr("placeholder")
            } else o.removeClass("placeholder")
        }

        function a() {
            try {
                return e.activeElement
            } catch (t) {
            }
        }

        var s, l, u = "[object OperaMini]" == Object.prototype.toString.call(t.operamini), c = "placeholder" in e.createElement("input") && !u, d = "placeholder" in e.createElement("textarea") && !u, f = n.fn, p = n.valHooks, h = n.propHooks;
        c && d ? (l = f.placeholder = function () {
            return this
        }, l.input = l.textarea = !0) : (l = f.placeholder = function () {
            var t = this;
            return t.filter((c ? "textarea" : ":input") + "[placeholder]").not(".placeholder").bind({
                "focus.placeholder": r,
                "blur.placeholder": o
            }).data("placeholder-enabled", !0).trigger("blur.placeholder"), t
        }, l.input = c, l.textarea = d, s = {
            get: function (t) {
                var e = n(t), i = e.data("placeholder-password");
                return i ? i[0].value : e.data("placeholder-enabled") && e.hasClass("placeholder") ? "" : t.value
            }, set: function (t, e) {
                var i = n(t), s = i.data("placeholder-password");
                return s ? s[0].value = e : i.data("placeholder-enabled") ? ("" == e ? (t.value = e, t != a() && o.call(t)) : i.hasClass("placeholder") ? r.call(t, !0, e) || (t.value = e) : t.value = e, i) : t.value = e
            }
        }, c || (p.input = s, h.value = s), d || (p.textarea = s, h.value = s), n(function () {
            n(e).delegate("form", "submit.placeholder", function () {
                var t = n(".placeholder", this).each(r);
                setTimeout(function () {
                    t.each(o)
                }, 10)
            })
        }), n(t).bind("beforeunload.placeholder", function () {
            n(".placeholder").each(function () {
                this.value = ""
            })
        }))
    }(this, document, i)
}, mok["lib/base"] = function (t, e, n) {
    var i = t("lib/jquery.min");
    t("lib/bootstrap.min"), t("lib/jquery.validform"), t("lib/jquery.qrcode.min");
    var r = /^13[0-9]{9}$|14[0-9]{9}$|15[0-9]{9}$|17[0-9]{9}$|18[0-9]{9}$/, o = {
        init: function () {
            o.header_fn(), o.left_nav_fn(), o.linkUs()
        }, header_fn: function () {
            var t = i("#topbar-nav-control");
            t.bind("click", function () {
                i(this).toggleClass("active"), i(this).next("dl").toggleClass("active")
            }), i(document).mouseup(function (e) {
                !t.is(e.target) && 0 === t.has(e.target).length && t.hasClass("active") && (t.removeClass("active"), t.next("dl").removeClass("active"))
            })
        }, left_nav_fn: function () {
            var t = i("#leyun-warp-navbar"), e = t.find(".item-link");
            e.length > 0 && e.bind("click", function () {
                i(this).parent().toggleClass("active"), i(this).find("dl").toggleClass("active")
            })
        }, placeholder: function () {
            t("lib/jquery.placeholder"), i("input").placeholder()
        }, tooltip: function () {
            i('[data-toggle="tooltip"]').tooltip()
        }, getSmsCode: function () {
            var t = i(".form-sms"), e = t.find(".form-sms-phone"), n = null, o = 30;
            t.on("click", ".btn-sms-code", function (t) {
                if (yzm_phone_val = e.val(), !r.test(yzm_phone_val))return e.addClass("Validform_error"), !1;
                e.removeClass("Validform_error");
                var a = i(t.target);
                return a.hasClass("disabled") ? !1 : (clearInterval(n), o = 30, a.html(o + "s后重新获取").addClass("disabled"), void(n = setInterval(function () {
                    --o, a.html(o + "s后重新获取"), 0 == o && (clearInterval(n), a.removeClass("disabled").html("免费获取验证码"))
                }, 1e3)))
            })
        }, checkAll: function () {
            i("#checkAll").click(function () {
                i(":checkbox[name='checkVideo']").prop("checked", this.checked)
            }), i(":checkbox[name='checkVideo']").click(function () {
                var t = i("input[name='checkVideo']");
                i("#checkAll").prop("checked", t.length == t.filter(":checked").length ? !0 : !1)
            })
        }, linkUs: function () {
            i.getScript("http://wpa.b.qq.com/cgi/wpa.php", function () {
                i("body").append('<div id="BizQQWPA"><a href="javascript:;"></a></div>'), BizQQWPA.addCustom({
                    aty: "2",
                    a: "2",
                    nameAccount: 800054392,
                    selector: "BizQQWPA"
                })
            })
        }
    };
    n.exports = o, i(function () {
        o.init()
    })
}, mok["lib/session"] = function (t, e, n) {
    {
        var i = t("lib/jquery.min");
        t("lib/base")
    }
    i(function () {
        i.ajaxSetup({
            contentType: "application/x-www-form-urlencoded;charset=utf-8", complete: function (t, e) {
                var n = t.getResponseHeader("sessionstatus");
                "timeout" == n && window.location.replace("http://live.letvcloud.com")
            }
        })
    })
}, mok["projects/admin_zb_home"] = function (t, e, n) {
    var i = t("lib/jquery.min"), r = t("lib/base");
    t("lib/session");
    var o = {
        init: function () {
            o.pops(), o.checkAll(), o.delSure(), o.canCel()
        }, pops: function () {
            i("#recharge-pop").bind("click", function () {
                i(this).find(".recharge-info").toggleClass("active")
            })
        }, checkAll: function () {
            i(".leyun-warp-container").on("click", "#checkAll", function () {
                i(":checkbox[name='checkVideo']").prop("checked", this.checked)
            }).on("click", ":checkbox[name='checkVideo']", function () {
                var t = i(":checkbox[name='checkVideo']");
                i("#checkAll").prop("checked", t.length == t.filter(":checked").length ? !0 : !1)
            })
        }, del: function () {
            i("#btnDel").click(function () {
                i(":checkbox[name=checkVideo]").each(function () {
                    i(this).prop("checked")
                })
            })
        }, canCel: function () {
            i(".cancel-l").click(function () {
                i(this).closest("tr").remove()
            })
        }, delSure: function () {
            i("#delSure").click(function () {
                var t = 0;
                i(":checkbox[name=checkVideo]").each(function () {
                    i(this).prop("checked") && t++
                }), t >= 1 ? (i("#delSure").attr("data-target", "#deleteModal"), t = 0) : i("#delSure").attr("data-target", "#deleteModal02")
            })
        }
    };
    n.exports = o, i(function () {
        o.init(), r.tooltip()
    })
}, mok["main/adminZbHomeApp"] = function () {
    require("projects/admin_zb_home")
}, require("main/adminZbHomeApp");